如何在 MySQL 中加密和解密字串?
要在 MySQL 中加密和解密,請在 MySQL 中使用 AES_ENCRYPT() 和 AES_DECRYPT() -
insert into yourTableName values(AES_ENCRYPT(yourValue,yourSecretKey)); select cast(AES_DECRYPT(yourColumnName, yourSecretKey) as char) from yourTableName;
為了理解上述語法,我們先建立一個表 -
mysql> create table demo63 −> ( −> value blob −> ); Query OK, 0 rows affected (2.60 sec)
使用 insert 命令向表中插入一些記錄。我們加密時進行插入 -
mysql> insert into demo63 values(AES_ENCRYPT('John','PASS'));
Query OK, 1 row affected (0.18 sec)
mysql> insert into demo63 values(AES_ENCRYPT('David','PASS'));
Query OK, 1 row affected (0.41 sec)
mysql> insert into demo63 values(AES_ENCRYPT('123456','PASS'));
Query OK, 1 row affected (0.41 sec)使用 select 語句從表中顯示記錄 -
mysql> select *from demo63;
這將產生以下輸出 -
+------------------------------------+ | value | +------------------------------------+ | 0x16D8A4F11321D761920783BF96BB8314 | | 0x0A85099F705F21D27B0129C54C4473AA | | 0xAB7C6D6068BC100B0F04D1C4EA068AC9 | +------------------------------------+ 3 rows in set (0.00 sec)
以下是解密的查詢 -
mysql> select cast(aes_decrypt(value, 'PASS') AS char) from demo63;
這將產生以下輸出 -
+------------------------------------------+ | cast(aes_decrypt(value, 'PASS') AS char) | +------------------------------------------+ | John | | David | | 123456 | +------------------------------------------+ 3 rows in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP