2
我有一個包含幾個ENCRYPTED blob
字段的表。數據用AES_ENCRYPT
加密。我現在試圖從這些字段中生成Ajax建議。與AES_DECRYPT不起作用的LIKE查詢
下面的查詢不起作用
SELECT id
, AES_DECRYPT(first_field,'secret_salt')
, AES_DECRYPT(second_field,'secret_salt')
FROM table
WHERE (AES_DECRYPT(first_field,'secret_salt') "%user search value%"
OR AES_DECRYPT(second_field,'secret_salt') LIKE "%user search value%"
)
AND status = 1
我一直在尋找,並試圖在過去的3天。以下查詢不起作用,但不是根據我的需要
SELECT id
, AES_DECRYPT(first_field,'secret_salt')
, AES_DECRYPT(second_field,'secret_salt')
FROM table
WHERE status = 1
我發現此查詢,但它也不起作用。
SELECT id, AES_DECRYPT(first_field,'secret_salt'), AES_DECRYPT(second_field,'secret_salt')
FROM table
WHERE first_field LIKE "%AES_ENCRYPT('user search value','secret_salt')%"
要調試我建議在一些常數硬編碼。拉出一個加密的字段並寫入一個查詢,比如'SELECT AES_DECRYPT('kjhsjdkha','secret')';檢查它是否會返回您所期望的。 – 2012-02-25 15:36:35
我剛剛刪除舊數據並插入了新數據,並且我開始工作正常,它處於開發階段,所以我只有幾條記錄,所以沒有問題 – user612703 2012-02-25 17:52:19
AES_ENCRYPT版本不起作用;每次加密相同的數據時,都會得到不同的結果。 AES_DECRYPT版本至少有一定的工作機會。但是,處理過程非常昂貴。您應該避免必須儘可能在加密列中進行搜索。 – 2012-02-25 21:59:24