一意の IV を使用すると、暗号化されたコンテンツを照合するためにすべてのレコードを復号化する必要があります。これは、ご存知のように、同じレコードを暗号化するたびに異なる値が得られるためです。
これが受け入れられないと仮定すると (小さなテーブルでは問題ありませんが、適切な数のレコードがあるものでは問題ありません)、1 つの代替方法は、値をハッシュし、ハッシュをデータベースの別の列に格納することです。ハッシュで検索し、一致するレコードのみを復号化して、それが本当に一致することを確認します。
暗号化しているものをハッシュ化する際の問題は、暗号化する価値のあるほとんどのもの (クレジット カード、口座番号など) には、可能な入力の数が決まっていることです。ハッシュに一意のソルトが添付されていても、たとえばクレジットカードではハッシングは良くありません.X億または兆または可能な限りのカード番号しかないため、ソルト、ハッシュ、および適切なプロセッサがあれば、かなり短い時間でカード番号をリバース エンジニアリングします。
ただし、可能な入力が多数あるものを扱っている場合は、このソリューションが機能する可能性があります。
もう 1 つの方法は、暗号化されたデータの一部がかなり一意的であるが、必ずしも秘密であるとは限らない場合 (たとえば、クレジット カード番号の最後の 4 つ)、その部分をプレーンテキストで保存し、それを使用してフィルター処理することです。大規模なデータセットを非常に小さな結果セットに変換し、その結果セット内の各レコードを復号化して検索基準と比較します。