我将使用MD5哈希来存储加密密码。密码长度可以是6到40个字符。存储加密密码所需的数据库列大小是多少。此外,如果40个字符的散列大小非常大,那么20个字符的密码需要多少散列大小?
我正在使用FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5");
生成用于存储在数据库中的哈希。
答案 0 :(得分:29)
哈希算法始终将任意大小的消息映射到固定长度的表示。换句话说,您可以散列空字符串或许多千兆字节的信息。散列大小始终是固定的。
在您的情况下,散列大小为128位。转换为ASCII字符串时,它将是一个仅包含十六进制数字的32个字符的字符串。
答案 1 :(得分:7)
http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5.aspx
MD5算法的散列大小为128位,与被散列的字符串长度无关。
考虑使用更新的散列函数,如SHA 256。
答案 2 :(得分:3)
MD5哈希值总是正好是16字节(128位)。