AES_ENCRYPT 和 AES_DECRYPT 在 MYSQL 中发挥作用
AES_ENCRYPT and AES_DECRYPT functions in MYSQL
我正在尝试 MYSQL 8.0.19 中的函数 AES_ENCRYPT 和 AES_DECRYPT。
当我 运行 SELECT AES_ENCRYPT('foo','test');
我得到 0x429292F7734FFE002C4E5B11239FD3A4
,但是当我 运行 SELECT AES_DECRYPT('0x429292F7734FFE002C4E5B11239FD3A4','test');
我得到 0x
(而不是 'foo'
)。
为什么 AES_DECRYPT 函数不起作用?
谢谢你们。亲切的问候。数控
aes_decrypt()
的输入需要是二进制字符串而不是字符串。由于 aes_decrypt()
的 return 值也是二进制字符串,您可能需要将其转换为字符串。
要么不引用输入。
SELECT cast(aes_decrypt(0x429292F7734FFE002C4E5B11239FD3A4, 'test') AS char);
或删除前导 '0x'
前缀和 x
。
SELECT cast(aes_decrypt(x'429292F7734FFE002C4E5B11239FD3A4', 'test') AS char);
或删除(字符)字符串上的前导 '0x'
和 unhex()
。
SELECT cast(aes_decrypt(unhex('429292F7734FFE002C4E5B11239FD3A4'), 'test') AS char);
我正在尝试 MYSQL 8.0.19 中的函数 AES_ENCRYPT 和 AES_DECRYPT。
当我 运行 SELECT AES_ENCRYPT('foo','test');
我得到 0x429292F7734FFE002C4E5B11239FD3A4
,但是当我 运行 SELECT AES_DECRYPT('0x429292F7734FFE002C4E5B11239FD3A4','test');
我得到 0x
(而不是 'foo'
)。
为什么 AES_DECRYPT 函数不起作用?
谢谢你们。亲切的问候。数控
aes_decrypt()
的输入需要是二进制字符串而不是字符串。由于 aes_decrypt()
的 return 值也是二进制字符串,您可能需要将其转换为字符串。
要么不引用输入。
SELECT cast(aes_decrypt(0x429292F7734FFE002C4E5B11239FD3A4, 'test') AS char);
或删除前导 '0x'
前缀和 x
。
SELECT cast(aes_decrypt(x'429292F7734FFE002C4E5B11239FD3A4', 'test') AS char);
或删除(字符)字符串上的前导 '0x'
和 unhex()
。
SELECT cast(aes_decrypt(unhex('429292F7734FFE002C4E5B11239FD3A4'), 'test') AS char);