9

我将使用 MD5 散列来存储加密密码。密码长度可以是 6 到 40 个字符。存储加密密码所需的数据库列大小是多少。此外,如果 40 个字符的哈希大小非常大,那么 20 个字符的密码需要多少哈希大小?

我正在使用FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5");生成哈希以存储在数据库中。

4

3 回答 3

31

哈希算法总是将任意大小的消息映射到固定长度的表示。换句话说,您可以散列一个空字符串或许多 GB 的信息。哈希大小始终是固定的。

在您的情况下,哈希大小为 128 位。当转换为 ASCII 字符串时,它将是一个仅包含十六进制数字的 32 个字符的字符串。

于 2011-08-09T08:12:23.083 回答
7

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

MD5 算法的散列大小为 128 位,与被散列的字符串的长度无关。

考虑使用更新的散列函数,如 SHA 256。

于 2011-08-09T08:08:58.843 回答
3

无论输入有多长,MD5 散列总是正好 16 字节(128 位)长。

于 2011-08-09T08:07:03.070 回答