2016-07-21 59 views
-1

当我运行这样的查询:MySQL的匹配加密值

SELECT * FROM table WHERE columnName = AES_ENCRYPT('value','SecretKey') 

我返回一个空集,即使有在匹配搜索查询的数据库行。

这样的东西的正确语法是什么样的?

+0

设置它是如何到达那里的样本。应该需要约5分钟。 – Drew

+0

对不起?不明白你的意思。 – tdrsam

+0

使用http://sqlfiddle.com创建一个MCVE,@tdrsam,并共享链接。如果您将加密值存储在“VARCHAR”而不是“VARBINARY”中,这是一个相当常见的错误,这也可以解释问题 - 您无法这样做。 'AES_ENCRYPT()'返回二进制数据,而不是字符数据。并非所有可能的字节模式都是有效字符。 –

回答

0
SELECT * FROM table WHERE columnName = AES_ENCRYPT(columnName,'SecretKey')='value'