我一直在尝试这么多不同的变体来让AES_Decrypt正常工作。我开始使用字段类型VARBINARY然后尝试BLOB但仍然没有运气,继续返回NULL。最后我试了一下:
SELECT AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') as test
这在技术上本应该回来等等等等,但它会返回
626c616820626c616820626c6168
所以不确定发生了什么或我做错了什么。
我已按如下方式插入加密数据:
INSERT INTO private (short_name, mobile, name)
VALUES (
'AS1',
AES_ENCRYPT('0111222333','1234'),
AES_ENCRYPT('My Name','1234')
)
然后我尝试解密它:
SELECT AES_DECRYPT('mobile', '1234') AS mobile FROM private
它似乎不起作用。在线跟踪了很多说明,但仍然没有运气。
有什么想法吗?
答案 0 :(得分:0)
SELECT AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') as test
返回二进制字符串作为输出。如果你将它转换为字符串然后它会等等等等等等。您可以使用在线十六进制到二进制转换器来验证它。您必须在GUI工具中将其设置为文本。
答案 1 :(得分:0)
所以我似乎需要使用CAST,除非使用mysql命令行客户端。
这样做似乎有效:
SELECT CAST(AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') AS CHAR (150))