Размер сгенерированного хэша MD5

Я бы использовал хеширование MD5 для хранения зашифрованных паролей. Пароль может содержать от 6 до 40 символов. Какой размер столбца базы данных требуется для хранения зашифрованного пароля. Кроме того, если размер хэша в 40 символов очень велик, то какой размер хэша потребуется для пароля из 20 символов?

Я использую FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5"); для генерации хэша для хранения в базе данных.


person Jatin    schedule 09.08.2011    source источник
comment
hashing! = шифрование   -  person Oded    schedule 09.08.2011
comment
Также не используйте MD5 для паролей. Используйте дорогостоящие в вычислительном отношении алгоритмы хеширования, такие как BCrypt или SCrypt, чтобы их было сложно отменить с помощью грубой силы.   -  person George Powell    schedule 01.09.2015


Ответы (3)


Алгоритм хеширования всегда отображает сообщение произвольного размера в представление фиксированной длины. Другими словами, вы можете хешировать пустую строку или много гигабайт информации. Размер хэша всегда фиксированный.

В вашем случае размер хэша составляет 128 бит. При преобразовании в строку ASCII это будет 32-символьная строка, содержащая только шестнадцатеричные цифры.

person Mehran    schedule 09.08.2011
comment
Большое спасибо. Я буду использовать столбец из 32 символов для хранения хешированного пароля. - person Jatin; 09.08.2011
comment
Помните, что если вы вручную хешируете пароли, вы сделал это неправильно. Пожалуйста, используйте bcrypt. - person Greg Hewgill; 09.08.2011

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

Размер хэша для алгоритма MD5 составляет 128 бит, независимо от длины хешируемой строки.

Рассмотрите возможность использования более новых хеш-функций, таких как SHA 256.

person Jakub Konecki    schedule 09.08.2011
comment
Или для хранения паролей используйте bcrypt. - person Greg Hewgill; 09.08.2011

Хэши MD5 всегда имеют длину ровно 16 байтов (128 бит), независимо от длины ввода.

person Greg Hewgill    schedule 09.08.2011