Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Mã hóa và giải mã chuỗi trong MySQL

Sử dụng AES_ENCRYPT() và AES_DECRYPT(). Cú pháp:

INSERT INTO tenBang VALUES(AES_ENCRYPT(giaTri, khoaBiMat));
SELECT CAST(AES_DECRYPT(tenCot, khoaBiMat) AS CHAR) FROM tenBang;

Tạo bảng demo63 với cột BLOB:

mysql> CREATE TABLE demo63 (
    -> value BLOB
    -> );

Chèn dữ liệu đã mã hóa (khóa 'PASS'):

mysql> INSERT INTO demo63 VALUES(AES_ENCRYPT('John','PASS'));
mysql> INSERT INTO demo63 VALUES(AES_ENCRYPT('David','PASS'));
mysql> INSERT INTO demo63 VALUES(AES_ENCRYPT('123456','PASS'));

Hiển thị dữ liệu mã hóa (dạng hex):

mysql> SELECT * FROM demo63;
+------------------------------------+
| value                              |
+------------------------------------+
| 0x16D8A4F11321D761920783BF96BB8314 |
| 0x0A85099F705F21D27B0129C54C4473AA |
| 0xAB7C6D6068BC100B0F04D1C4EA068AC9 |
+------------------------------------+

Giải mã:

mysql> SELECT CAST(AES_DECRYPT(value, 'PASS') AS CHAR) FROM demo63;

Kết quả:

+------------------------------------------+
| CAST(AES_DECRYPT(value, 'PASS') AS CHAR) |
+------------------------------------------+
| John                                     |
| David                                    |
| 123456                                   |
+------------------------------------------+