我想知道md5,sha1和另一个是否返回唯一值。
例如,sha1()对于testreturn a94a8fe5ccb19ba61c4c0873d391e987982fbbd3,其长度为40个字符。因此,大于40个字符的字符串的sha1必须相同(当然,它是加扰的,因为给定的输入可能包含空格和特殊字符等)。
sha1()
test
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
因此,当我们存储用户密码时,他们可以输入其原始密码或一些没人知道的超长密码。
是这样吗,还是这些哈希算法提供了真正独特的结果-我很确定这几乎是不可能的。
(注意:您在问的是哈希函数,而不是加密)。
根据定义,它们不可能唯一。他们需要大量的输入并减小其大小。显然,它们不能代表已压缩的所有信息。因此,它们不会提供“真正独特”的结果。
但是,它们 确实 提供了“防碰撞”结果。即,他们尝试表明两个略有不同的数据产生了显着不同的哈希。