私は少し奇妙なジレンマに陥っています。説明しようと思いますので、ご容赦ください!
フォーム認証を使用しており、追加のユーザー情報を別のテーブルに保存しています(Forms Authから参照されるUserID、暗号化されたSSN、Salt値)。ユーザーがサイトに登録するとき、私はSSN、DOB、LNameに質問し、アカウントを作成する前にシステムと照合します。そのSSNにフォーム認証で関連付けられたアカウントがあるかどうかを確認したいと思います。SSNはソルト値で暗号化されているため、各行を確認せずにルックアップを実行することはできません。
SSNごとに1つのユーザーアカウントのみが必要です。ソルト値を使用すると、これが混乱します。
私の見方では、これを回避する唯一の方法は、SSNに一般的な暗号化アルゴリズムを使用することです。ユーザーが入力するときに、同じ暗号化アルゴリズムを適用して、ユーザー拡張プロパティテーブルに値が一致するかどうかを確認します。
これで十分安全ですか?