Видите ли вы какие-либо проблемы с подходом, описанным здесь, для использования в производственной среде.
Хорошо, давайте сначала поговорим о хешировании.Во-первых, вы должны знать, что простой Hash (Salt + Password) может быть взломан достаточно легко, когда люди используют общие пароли.Таким образом, один только соленый хеш обычно не выигрывает у вас много времени, прежде чем они взломают большой процент паролей вашего пользователя.
Сценарий: допустим, вам потребуется 24 часа, чтобы заметить, что было сделано нарушение.Многие учетные записи уже будут скомпрометированы в этом коротком окне.Вы сбросили все пароли учетных записей пользователей, теперь пользователи в безопасности, верно?Таким образом, вы отправляете электронные письма всем своим пользователям, информируя их о нарушении и советуя им сбросить свой пароль.Проблема в том, что эти глупые пользователи уже давно используют этот пароль в Интернете, один и тот же пароль для своего банка, электронной почты и т. Д. Так что даже после того, как вы перестанете получать доступ к вашему сайту с украденными паролями, у пользователя могут появиться другие учетные записи, которые он долженсброс.Допустим, им требуется еще один день, чтобы получить электронное письмо и сбросить свои пароли.Как вы покупаете больше времени для пользователя?
Ответ PBKDF2 .Это увеличивает сложность хэша, поэтому каждый тест каждого пароля занимает тысячи раз дольше, чем простой соленый хеш.Для этого в .NET используется класс Rfc2898DeriveBytes .См. Рабочий пример, прочитав: « Еще один пример того, как хранить хэш с соленым паролем ».
Я не понимаю, зачем нужен метод BytesToHex, а также почему"x2" добавлен туда.Любые идеи?
Нет причин, о которых я могу думать.
Если я хочу сохранить этот хешированный пароль (повторно обработанный методом HashPassword) в базе данных SQL Server, какой тип данныхдолжен быть использован.CHAR (128), VARCHAR (128) или что-то еще с плюсами и минусами каждого подхода.
Лучше всего работают необработанные байты, Base64 также стоит рассмотреть, хотите ли вы сохранить его как текст.