两个不同的文本(文件)的 MD5 值会是一样的吗?

19 条回复
163 次浏览

MD5 即第五版消息摘要算法,因其原文不同,生成的哈希不同,广泛用于文件校验等

由于 MD5 的结果为定长则一定会出现不同的输入得到相同的输出(鸽巢原理),因为碰撞难度太高,即便存在缺陷,仍然被广泛使用,直到 2004 年,中国山东大学王小云教授发表一篇关于 MD5 的论文后(理论上一直存在碰撞问题,只是现实中难度太高,该论文实际上展示了碰撞结果,证明了短时间可碰撞出结果),MD5 不再具备碰撞抗性,逐渐被废弃。

下面是两个不同的文件,其 MD5 是相同的。

image

参考资料:
https://crypto.stackexchange.com/questions/1434/are-there-two-known-strings-which-have-the-same-md5-hash-value
https://natmchugh.blogspot.com/2015/02/create-your-own-md5-collisions.html

工作中遇到过,两个文章标题的 md5 是一样的,由此引发了一些问题。(下班买了刮刮乐,一块钱都没中...)

讲故事的人
OP
Guardian

这种概率低到忽略不计,可能是其他问题导致的,不太可能是差分攻击,如果有这两段文本,可以看一下。

讲故事的人
OP
Guardian

这种概率还是很低的,SHA-1 也是不推荐使用的(也有实际碰撞案例)。

种子用户

还记得 xcode 投毒事件,据传用了 md5 碰撞感染了迅雷服务器,即便你用官方链接下载也是感染后的版本

那是一定的,因为你用无限的输入映射到一个有限的输出,理论上一定会出现无限的碰撞结果

讲故事的人
OP
Guardian

刚开始是理论缺陷,实际上碰撞出来需要的时间很长,后面放弃是因为有了快速碰撞的方法。

马上来

理论上所有散列都会碰撞
真正的问题是能“故意制造”碰撞

发表一个评论

R保持