mysql - MYSQL 中的 AES_ENCRYPT 和 AES_DECRYPT 函数
问题描述
我在 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()
也是二进制字符串,您可能需要将其转换为字符串。
要么不引用输入。
SELECT cast(aes_decrypt(0x429292F7734FFE002C4E5B11239FD3A4, 'test') AS char);
或删除前导'0x'
前缀 an x
。
SELECT cast(aes_decrypt(x'429292F7734FFE002C4E5B11239FD3A4', 'test') AS char);
或删除(字符)字符串的前导'0x'
和unhex()
。
SELECT cast(aes_decrypt(unhex('429292F7734FFE002C4E5B11239FD3A4'), 'test') AS char);
推荐阅读
- ntp - 网络时间协议 V4 - 数据包中的扩展字段计数
- php - 我无法通过 curl 登录网站
- python - 如何在 Windows 中使用 cmd 安装 SQLAlchemy
- javascript - 我无法使用 react 和 javascript 将订购商品的数量保存在本地存储中
- python - 欧拉角引起的机器人定向问题
- docker - 如何在 Dockerfile 中将文件夹的权限更改为 777?
- python - 用for循环转换多列的数据类型
- angular - 如何使用 Angular 和 firebase 使帐号独一无二
- robots.txt - robots.txt 允许和禁止少数页面,对其他页面意味着什么?
- android - 如何对用户隐藏活动?