2016-07-21 90 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'