📅  最后修改于: 2023-12-03 15:33:02.222000             🧑  作者: Mango
在 MySQL 中,AES_DECRYPT() 函数用于解密使用 AES 加密算法加密的字符串。该函数接受两个参数,第一个是要解密的字符串,第二个是密钥。密钥必须与加密时使用的密钥相同,否则解密失败。
AES_DECRYPT(crypt_str, key_str)
crypt_str
:要解密的字符串。key_str
:密钥。解密成功返回解密后的明文字符串,否则返回 NULL。
SELECT AES_DECRYPT(AES_ENCRYPT('hello world', 'mykey'), 'mykey')
执行该语句会输出 hello world
,因为在该语句中,AES_ENCRYPT()
函数对字符串 'hello world'
进行 AES 加密,密钥为 'mykey'
,然后将加密后的字符串传递给 AES_DECRYPT()
函数进行解密,解密使用的密钥也是 'mykey'
。
在使用 AES_DECRYPT()
函数进行解密时,必须使用正确的密钥,否则解密会失败。为了保证密钥的安全性,可以将密钥保存在环境变量中或者在代码中加密存储。此外,由于加密算法对明文进行了保护,在解密失败时,该函数不会报错,而是返回 NULL,因此需要注意判断解密结果是否为 NULL。