В прошлом при работе с паролями я всегда хранил соль и хешированный пароль отдельно в своем хранилище данных. Сегодня я искал обновление устаревшего кода для использования хеш-значения RFC 2898. Я наткнулся на методы Crypto.Hash
от System.Web.Helpers
. Похоже, что они сделают большую часть тяжелой работы для меня. Существуют методы GenerateSalt()
, HashPassword()
и VerifyHashedPassword()
. Методы HashPassword()
и VerifyHashedPassword()
не принимают значение соли. Документация MSDN для метода HashPassword()
гласит:
"Формат генерируемого хэш-потока - {0x00, соль, подраздел}, который кодируется base-64, прежде чем он будет возвращен."
Нужно ли беспокоиться о соли? В документации, по-видимому, говорится, что соль будет генерироваться автоматически и храниться в кодированном значении base-64? Это верно? Все, что мне нужно сохранить, это строка, возвращаемая из HashPassword()
?