Ответ 1
LINQ to SQL не имеет большого значения в этом случае. Вы можете использовать любой механизм, который хотите, потому что вы не будете делать хэширование и соление в SQL.
Шаги по сохранению пароля будут идти по этим строкам:
- Получить пароль как открытый текст вместе с идентификатором пользователя.
- Генерировать (и помнить) соль.
- Объединить соль с текстом пароля, например. добавьте его или добавьте его.
- Хешируйте полученный текст с помощью хеш-функции
- Сохраните идентификатор пользователя, хэш и соль в вашей БД.
Действия по проверке пароля будут идти по этим строкам:
- Получить пароль как открытый текст вместе с идентификатором пользователя.
- Извлеките хэшированные данные и соль из БД для предоставленного идентификатора пользователя.
- Объедините соль с указанным текстом пароля.
- Хешируйте полученный текст с помощью хеш-функции.
- Сравните хэш от функции с хешем, полученным из БД.
- Если они равны, введенный пароль был правильным.