Mysql
 sql >> база данни >  >> RDS >> Mysql

AES_ENCRYPT и AES_DECRYPT с помощта на java

A toString() върху байтов масив не връща съдържанието на байтовия масив, но [[email protected] последвано от хеш кода за самоличност на байтовия масив. Във вашата вложка не сте използвали съдържанието на key като ключ, но toString - стойност. Трябва да използвате PreparedStatement с параметризирана заявка и задайте стойностите с помощта на 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);

И направете същото за вашата заявка за избор.

Никога не трябва да свързвате стойности в заявката си. Това ще ви направи уязвими към SQL инжектиране.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преброяване на броя на извършените заявки

  2. TEXT срещу VARCHAR в InnoDB MySQL 5.5. Кога да използвате всеки един

  3. MYSQL избягва вмъкването на същия ред два пъти

  4. Трябва ли да използвам библиотека за обединяване на C3P0 в моето (grails) уеб приложение?

  5. Най-добрата схема за кодиране на емоджи