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