sha & md5 如果字符串长度相等则发生碰撞



我理解md5和sha512等…是不安全的,因为它们可能发生冲突。

然而,如果字符串长度相同,是否仍然有可能发生碰撞?

Ie。为了验证身份,它会检查密码的长度,并检查它是否匹配md5/sha密码哈希值。

换句话说,如果我有十位密码:a123456789

其他10个alpha/数字/特殊字符md5/sha哈希会碰撞并且相同吗?

如果是,如果它们只是alpha数字,它们还会碰撞吗?你能举个例子吗?

我读过的所有碰撞似乎都是两个pdf或类似的,但这往往是有意义的。我认为如果被散列的输入长度等于且小于100个字符,我认为应该没有冲突。

很想听听大家对这个问题的看法。

如果一个散列因为可能有冲突而不安全,那么所有散列都是不安全的。当被散列的数据长度大于散列输出的长度时,根据鸽子洞原理,任何散列都保证存在冲突。

如果你问,那么,通过限制数据的大小,使其不超过哈希值,这是否意味着不会发生碰撞?我认为这取决于哈希算法。考虑一个散列,它只是将数据的每个字节的值加在一起,形成一个任意大小的整数,该整数的位数可以与输入数据的长度相同。当然,有些数据序列加在一起会得到相同的哈希值,尽管数据长度不超过哈希长度。

使哈希安全的并不是缺少冲突,而是在给定所需的哈希值的情况下,计算出一个能给出该哈希值的值的可能性非常非常低。

如果你真的想要一个不产生冲突的哈希,那么你可以使用加密。对输入进行加密,并将输出当作散列来使用,这样就不会产生任何冲突。

最新更新