目前我正在为用户电子邮件设计一个散列系统,但是如果用户电子邮件长于散列输出会发生什么。如果它基于算法有所不同,我通常使用 sha1 sha256 或 sha512 ......它似乎在某个点上算法无法继续产生独特的输出。
问问题
129 次
1 回答
0
哈希值通常具有从 13 (DES) 到 86 (SHA2) 字符的固定长度。如果您提供更长的输入,这是完全正常的。把它想象成一个“交叉求和”,你也可以用任意长数字来做。
关于唯一性,使用带有 SHA-512 的标准 crypt(3) 函数和集合 a-zA-Z./ 中的字符,您有 54 个不同的字符和一个 86 个字符的长字符串,因此有 54^86 个不同的值。好多啊 :-)
(不要使用 13 字符长的 DES crypt,这对于现代硬件来说是暴力破解的,并且总是使用“salt”值,这样相同的输入字符串会给出不同的哈希值,并且你不能使用“彩虹表”攻击)。
于 2013-06-13T12:45:00.350 回答