sql >> Base de Datos >  >> RDS >> Mysql

AES_ENCRYPT y AES_DECRYPT usando Java

Un toString() en una matriz de bytes no devuelve el contenido de la matriz de bytes, pero [[email protected] seguido del código hash de identidad de la matriz de bytes. En su inserción no usó el contenido de key como clave, pero toString -valor. Necesita usar un PreparedStatement con una consulta parametrizada y establezca los valores usando 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);

Y haga lo mismo para su consulta de selección.

Nunca debe concatenar valores en su consulta. Te hará vulnerable a la inyección SQL.