该函数用于使用 DES (数据加密标准) 算法对字符串进行加密。MySQL DES_ENCRYPT 函数使用 key 来加密字符串。
DES_ENCRYPT 函数返回的值是加密的字符串或NULL。DES_ENCRYPT 函数接受三个参数,即纯文本字符串和 key 字符串以及用于对该字符串进行加密的 key 编号。
DES_ENCRYPT(str[,(key_num|key_str)])
str 用于指定要加密的字符串
key_num 用于从 DES key 文件中指定一个介于 0 到 9 之间的数字
key_str 用于指定用于加密 str 字符串的字符串。
(1)通过指定 DES key 实现对字符串进行 DES_ENCRYPT 加密,例如:
mysql> SELECT HEX(DES_ENCRYPT('hxstrive.com', 5)); +-------------------------------------+ | HEX(DES_ENCRYPT('hxstrive.com', 5)) | +-------------------------------------+ | 85214FEC2FB7E7CCEB3C94B87D6480BFF4 | +-------------------------------------+ 1 row in set (0.04 sec)
(2)通过指定加密字符串对字符串上实现 DES_ENCRYPT 加密,例如:
mysql> SELECT HEX(DES_ENCRYPT('hxstrive.com', 'TestPassward')); +--------------------------------------------------+ | HEX(DES_ENCRYPT('hxstrive.com', 'TestPassward')) | +--------------------------------------------------+ | FFA58E7545F77B5F50CFA7F289DE858BE0 | +--------------------------------------------------+ 1 row in set (0.02 sec)
(3)在 NULL 字符串上实现 DES_ENCRYPT 函数,例如:
mysql> SELECT HEX(DES_ENCRYPT(NULL, 7)); +---------------------------+ | HEX(DES_ENCRYPT(NULL, 7)) | +---------------------------+ | NULL | +---------------------------+ 1 row in set (0.02 sec)