sql >> Databáze >  >> RDS >> Mysql

AES_ENCRYPT a AES_DECRYPT pomocí jazyka Java

A toString() na byte-array nevrací obsah bajtového pole, ale [[email protected] následovaný identifikačním hashkódem bajtového pole. Ve vaší příloze jste nepoužili obsah key jako klíč, ale toString -hodnota. Musíte použít PreparedStatement s parametrizovaným dotazem a nastavte hodnoty pomocí setBytes :

psmt = con.prepareStatement("insert into mm values (?, AES_ENCRYPT(?, ?), AES_ENCRYPT(?, ?))");
psmt.setInt(1, id);
psmt.setString(2, name);
psmt.setBytes(3, key);
psmt.setstring(4, sal);
psmt.setBytes(5, key);

A totéž udělejte pro vybraný dotaz.

Nikdy byste neměli zřetězit hodnoty do svého dotazu. Učiní vás zranitelnými vůči SQL injection.



  1. Inicializace databáze Spring Boot MySQLException pro Trigger

  2. Zobrazit databáze/tabulky DO OUTFILE

  3. předáním parametru Date k vytvoření dotazu na časové období

  4. Oracle DB Server + APEX + ORDS + JasperReports od nuly (část 1)