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