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.