sql >> Database teknologi >  >> RDS >> Mysql

AES_ENCRYPT og AES_DECRYPT ved hjælp af java

En toString() på et byte-array returnerer ikke indholdet af byte-arrayet, men [[email protected] efterfulgt af identitets-hashkoden for byte-arrayet. I dit indlæg brugte du ikke indholdet af key som nøglen, men toString -værdi. Du skal bruge en PreparedStatement med en parametriseret forespørgsel, og indstil værdierne ved hjælp af 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);

Og gør det samme for din udvalgte forespørgsel.

Du bør aldrig sammenkæde værdier i din forespørgsel. Det vil gøre dig sårbar over for SQL-injektion.



  1. Entity Framework-metadataartefakt er ikke indlejret ved brug af xbuild og mono

  2. Hvorfor mysql INSERT ... PÅ DUBLIKAT NØGLEOPDATERING kan bryde RBR-replikering på en master/master-konfiguration

  3. kompleks forespørgsel tager for lang tid at overføre

  4. Hentning af alle børn (og deres børn) af en given overordnet node i en MySQL/MariaDB relationstabel