У меня странная дилемма. Пожалуйста, терпите меня, когда я пытаюсь это объяснить!
Я использую проверку подлинности с помощью форм и сохраняю дополнительную информацию о пользователе в другой таблице (ссылка на UserID из Forms Auth, зашифрованный SSN, значение Salt). Когда пользователи регистрируются на сайте, я спрашиваю SSN, DOB и LName и проверяю их в нашей системе перед созданием учетной записи. Я хочу определить, имеет ли этот SSN учетную запись, связанную с ним в формах аутентификации. Поскольку SSN зашифрован с использованием соли, я не могу выполнить поиск, не просматривая каждую строку.
Мне нужна только 1 учетная запись пользователя на SSN. Использование значения соли нарушает это.
На мой взгляд, единственный способ обойти это - использовать общий алгоритм шифрования для SSN. Когда пользователь вводит его, я применяю тот же алгоритм шифрования и смотрю, есть ли совпадение значений в таблице расширенных свойств пользователя.
Это достаточно безопасно?