MySQL AES_DECRYPT trả về NULL

Hàm MySQL AES_DECRYPT trả về chuỗi gốc sau khi giải mã chuỗi được mã hóa. Nó sử dụng thuật toán AES (Advanced Encryption Standard) để thực hiện giải mã. Hàm AES_DECRYPT trả về chuỗi đã giải mã hoặc NULL nếu phát hiện dữ liệu không hợp lệ.  

Giá trị do hàm AES_DECRYPT trả về là chuỗi văn bản gốc được mã hóa bằng hàm AES_ENCRYPT. Hàm AES_DECRYPT chấp nhận hai tham số là chuỗi mã hóa và chuỗi dùng để giải mã chuỗi mã hóa.  

cú pháp.  

AES_DECRYPT(encrypted_string, key_string)

Thông số được sử dụng.   

  • mã hóa_string - Nó được sử dụng để chỉ định chuỗi được mã hóa
  • key_string – Nó được sử dụng để chỉ định Chuỗi được sử dụng để giải mã chuỗi mã hóa

Giá trị trả về.  
Hàm AES_DECRYPT trong MySQL trả về chuỗi văn bản gốc được mã hóa bằng hàm AES_ENCRYPT.  

Các phiên bản được hỗ trợ của MySQL.  

  • mysql 5. 7
  • mysql 5. 6
  • mysql 5. 5
  • mysql 5. 1
  • mysql 5. 0
  • mysql 4. 1

Ví dụ 1. Thực hiện chức năng AES_DECRYPT trên một chuỗi.  

SELECT  
AES_DECRYPT(AES_ENCRYPT('ABC', 'key_string'), 'key_string'); 

đầu ra.   

ABC 

Ví dụ-2. Triển khai hàm AES_DECRYPT trên một chuỗi có sự kết hợp của các ký tự và giá trị số nguyên.  

Hàm MySQL AES_DECRYPT() giải mã một chuỗi được mã hóa bằng thuật toán AES để trả về chuỗi gốc. Nó trả về NULL nếu phát hiện dữ liệu không hợp lệ

cú pháp

AES_DECRYPT(crypt_str, key_str);

Tranh luận

NameDescriptioncrypt_strMột chuỗi được mã hóa. key_strString để sử dụng để giải mã crypt_str

Sơ đồ cú pháp

MySQL AES_DECRYPT trả về NULL

Phiên bản MySQL. 5. 6


Thí dụ

Mã số

SELECT   AES_DECRYPT(AES_ENCRYPT('mytext','mykeystring'),
'mykeystring');

Giải trình

Câu lệnh MySQL ở trên giải mã chuỗi 'mytext' được mã hóa bằng mykeystring và trả về chuỗi gốc mytext

Đầu ra mẫu

mysql> SELECT AES_DECRYPT(AES_ENCRYPT('mytext','mykeystring'),'mykeystring');
+----------------------------------------------------------------+
| AES_DECRYPT(AES_ENCRYPT('mytext','mykeystring'),'mykeystring') |
+----------------------------------------------------------------+
| mytext                                                         | 
+----------------------------------------------------------------+
1 row in set (0.00 sec)

bảng mẫu. bảng kiểm tra


Mã số

SELECT description, AES_DECRYPT(description,'passw') 
FROM testtable;

Giải trình

Câu lệnh MySQL ở trên truy xuất dữ liệu được giải mã từ cột 'mô tả' được mã hóa từ 'bảng kiểm tra'

Làm cách nào để mã hóa và giải mã trong MySQL?

AES_ENCRYPT() mã hóa chuỗi str bằng chuỗi khóa key_str và trả về một chuỗi nhị phân chứa đầu ra được mã hóa. AES_DECRYPT() giải mã chuỗi được mã hóa crypt_str bằng chuỗi khóa key_str và trả về chuỗi văn bản gốc ban đầu

Làm cách nào để mã hóa chuỗi trong MySQL?

Hàm AES_ENCRYPT của MySQL được sử dụng để mã hóa chuỗi bằng thuật toán Tiêu chuẩn mã hóa nâng cao (AES). Hàm MySQL AES_ENCRYPT mã hóa dữ liệu với độ dài khóa 128 bit nhưng nó có thể được mở rộng lên tới độ dài khóa 256 bit. Nó mã hóa một chuỗi và trả về một chuỗi nhị phân.