Un toString()
su un array di byte non restituisce il contenuto dell'array di byte, ma [[email protected]
seguito dall'hashcode di identità dell'array di byte. Nel tuo inserto non hai utilizzato il contenuto di key
come chiave, ma toString
-valore. Devi usare un PreparedStatement
con una query parametrizzata e impostare i valori utilizzando 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);
E fai lo stesso per la query selezionata.
Non dovresti mai concatenare i valori nella tua query. Ti renderà vulnerabile all'iniezione di SQL.