Подтвердить что ты не робот

Какие из включенных в .NET алгоритмов хеширования подходят для хеширования паролей?

утечка паролей LinkedIn доказала, насколько важна это безопасно хешировать ваши пароли. Однако даже хэширующие пароли с солью не защищены "нормальными" алгоритмами хеширования (такими как MD5 и семейство SHA), поскольку они оптимизированы для скорости, что позволяет хакерам вычислять 2300 миллионов хэшей в секунду (грубая сила).

Существуют алгоритмы хэширования, которые более безопасны для использования, потому что они намного более интенсифицированы вычислительными процессами, например PBKDF2, Bcrypt, PBMAC и scrypt. Однако эти алгоритмы хеширования, похоже, не включены в платформу .NET.

Итак, какие интенсивные алгоритмы хеширования включены в платформу .NET?

ОТВЕТ: PBKDF2 включен в структуру и этот сайт показывает, как правильно его использовать. p >

4b9b3361

Ответ 1

Я думаю, что это не действительно значимое имя класса, но я думаю, что оно включено в .NET framework. Согласно нескольким источникам, Rfc2898DeriveBytes фактически является реализацией PBKDF2. MSDN говорит так же.

См Почему мне нужно использовать класс Rfc2898DeriveBytes (в .NET) вместо прямого использования пароля в качестве ключа или IV? а также Реализация PBKDF2 в С# с Rfc2898DeriveBytes

например.

Ответ 3

Нет хэширующего алгоритма, который на 100% безопасен. Связанный взлом был больше из-за безопасности инфраструктуры/кода, чем алгоритм хэширования. Любой хеш может быть рассчитан, он занимает больше времени, чем сложнее хеширование algortihm. Некоторые атаки, такие как атаки на столкновение, на самом деле намного медленнее выполнять сложный хеш.

Я всегда гарантирую, что я хэш-пароли (никогда не шифруются), ограничивают доступ к серверам. Все разработчики, работающие для меня, понимают, по крайней мере, основы безопасности (sql-инъекция, переполнение и т.д.) И любой сайт высокого профиля, над которым я работаю, проверены на проверку.