MySQL AES_Decrypt无效

时间:2017-09-26 12:05:33

标签: mysql aes

我一直在尝试这么多不同的变体来让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

它似乎不起作用。在线跟踪了很多说明,但仍然没有运气。

有什么想法吗?

2 个答案:

答案 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))