Считается ли SHA512Managed лучшим односторонним хешем, доступным в .NET 3.5 для безопасности? - PullRequest
4 голосов
/ 09 ноября 2009

Три SHA512Управленные связанные вопросы:

  1. Считается ли SHA512Managed лучшим односторонним хешем, доступным в .NET 3.5 для безопасности?
  2. Какой размер соли следует использовать с SHA512Managed? Приложение для надежных паролей не менее 8 символов.
  3. 512 избыточно по сравнению с 256 для маленьких строк?

Ответы [ 3 ]

16 голосов
/ 15 декабря 2009

Ответ Бена неверный, вы должны не использовать функции SHA * для хеширования паролей. Вам следует использовать хеш-функцию, специально предназначенную для хеширования паролей, например PBKDF2, BCrypt или SCrypt. Ответ и комментарии Минны верны.

Поскольку вы хотите использовать стандартную библиотеку .NET, я предлагаю Rfc2898DeriveBytes, который является реализацией PBKDF2.

http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx

6 голосов
/ 09 ноября 2009

Если вы хотите предотвратить атаки методом перебора, возьмите лут на bcrypt или scrypt. Они разработаны, чтобы быть алгоритмически медленными. Поэтому, даже если злоумышленник овладеет базой паролей, вычисление всего займет вечность.

http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx

http://www.tarsnap.com/scrypt.html

3 голосов
/ 09 ноября 2009
  1. Sha512Managed не зависит от системных вызовов и имеет наибольший размер встроенных хешей. Если вы не оптимизируете что-либо еще, это будет считаться самым безопасным.

  2. В целях взлома пароля соль существенно увеличивает размер пароля. Хотя «чем больше, тем лучше», все, кроме числа бит самого пароля, в значительной степени теряется. Таким образом, для минимального 8-символьного пароля ASCII вы можете использовать 64-битную соль.

  3. Да и нет. Это излишне для современных технологий; размер строк не имеет значения. Если вам нужно, чтобы ваши пароли были надежными в течение следующих 100 лет, хорошо, перейдите на 512.

Ссылка: http://www.codeproject.com/KB/security/Cryptography_NET.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...