私はいくつかのENCRYPTED blob
フィールドを含むテーブルを持っています。データはAES_ENCRYPT
で暗号化されています。私は今、これらのフィールドからajaxの提案を生成しようとしています。AES_DECRYPTが動作していないLIKEクエリ
次のクエリは、私が検索し、最後の3日間しようとしている
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
動作しません。次のクエリは機能しますが、私のニーズに合っていません
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')'のようなクエリを書く。それがあなたが期待しているものを返すかどうかを確認する。 –
古いデータを削除して新しいデータを挿入したばかりで、正常に動作し始めました。開発段階にあったので、いくつかのレコードしかないので問題ありませんでした。 – user612703
AES_ENCRYPTのバージョンは動作しません。同じデータが暗号化されるたびに、別の結果が得られます。少なくともAES_DECRYPTのバージョンは動作する可能性があります。しかしながら、この処理は非常に高価である。暗号化された列を可能な限り検索する必要はありません。 –