Mysql
 sql >> Base de données >  >> RDS >> Mysql

AES_ENCRYPT et AES_DECRYPT en utilisant Java

Un toString() sur un byte-array ne retourne pas le contenu du byte-array, mais [[email protected] suivi du hashcode d'identité du tableau d'octets. Dans votre encart vous n'avez pas utilisé le contenu de key comme clé, mais le toString -évaluer. Vous devez utiliser un PreparedStatement avec une requête paramétrée, et définissez les valeurs en utilisant 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);

Et faites de même pour votre requête de sélection.

Vous ne devez jamais concaténer des valeurs dans votre requête. Cela vous rendra vulnérable aux injections SQL.