加密哈希值是否提供了真正独特的结果?

Mik*_*ite 8 algorithm hash

我想知道md5,sha1和anothers是否返回了唯一值.

例如,sha1()对于test返回a94a8fe5ccb19ba61c4c0873d391e987982fbbd3,长度为40个字符.因此,对于大于40个字符的字符串,sha1必须相同(当然它是乱码的,因为给定的输入可能包含空格和特殊字符等).

因此,当我们存储用户的密码时,他们可以输入他们的原始密码或一些超级密码,这是没有人知道的.

这是正确的,还是这些哈希算法提供了真正独特的结果 - 我很确定它几乎不可能.

Noo*_*ilk 13

(注意:你问的是散列函数,而不是加密).

根据定义,它们不可能是独一无二的.他们需要大量投入并减小其规模.因此,很明显,它们无法代表他们压缩的所有信息.所以不,他们不提供"真正独特"的结果.

他们什么提供,但是,是"抗碰撞"的结果.即他们尝试表明两个略有不同的数据会产生明显不同的哈希值.


kem*_*002 10

散列算法(这是你所指的)不提供独特的结果.你所指的是鸽笼原则.输入数量超过输出数量,因此必须将多个输入映射到同一输出.这就是为什么输出散列越长越好,因为映射到输出的输入数量较少.

加密某些内容必须提供唯一的结果,因为您可以加密邮件并对其进行解密并获取相同的邮件.

  • 鸽笼原则+1,这是你想要的证明 (2认同)