Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

AES_ENCRYPT và AES_DECRYPT sử dụng java

Một toString() trên mảng byte không trả về nội dung của mảng byte, nhưng [[email protected] theo sau là mã băm nhận dạng của mảng byte. Trong phụ trang của mình, bạn đã không sử dụng nội dung của key làm khóa, nhưng toString -giá trị. Bạn cần sử dụng PreparedStatement với một truy vấn được tham số hóa và đặt các giá trị bằng 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);

Và làm tương tự cho truy vấn đã chọn của bạn.

Bạn không bao giờ nên nối các giá trị vào truy vấn của mình. Nó sẽ khiến bạn dễ bị chèn 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. Chuyển đổi dự phòng mysql:làm thế nào để chọn nô lệ làm chủ mới?

  2. Có thể tải cơ sở dữ liệu trong RAM không?

  3. PHP PDO chọn các cột có dấu nháy đơn trong tên của chúng

  4. Cú pháp kích hoạt và IF ELSE THEN

  5. SQLAlchemy xác định nếu tồn tại ràng buộc duy nhất