sql >> Database >  >> RDS >> Mysql

AES_ENCRYPT en AES_DECRYPT met java

Een toString() op een byte-array retourneert niet de inhoud van de byte-array, maar [[email protected] gevolgd door de identiteitshashcode van de bytearray. In je insert heb je de inhoud van key . niet gebruikt als de sleutel, maar de toString -waarde. U moet een PreparedStatement . gebruiken met een geparametriseerde query, en stel de waarden in met 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);

En doe hetzelfde voor uw geselecteerde zoekopdracht.

U mag nooit waarden in uw query samenvoegen. Het maakt je kwetsbaar voor SQL-injectie.



  1. probleem met het krijgen van num_rows met PDO-klasse in php

  2. hoe multiple join sql-query te gebruiken in java spring boot

  3. Verbinding maken met MySQL met Perl

  4. Prestatiemythen:Truncate kan niet worden teruggedraaid