使用相同md5哈希的2个字符串的可能性有多大?

时间:2012-02-05 13:43:42

标签: md5

我在某处读到md5不是100%安全的。因此,问题。

1 个答案:

答案 0 :(得分:2)

您似乎在问两个独立但相关的问题。

随机碰撞的概率在很大程度上取决于您正在使用的数据的大小;你正在散列的字符串越多,发生碰撞的可能性就越大。有关确切概率,请参阅Wikipedia: Birthday Attack的第一个表格。 MD5使用128位,因此为了达到50%的碰撞概率,你需要2.2E19字符串。

然而,虽然随机碰撞对于小数据集来说是罕见的,但MD5已被证明对故意碰撞完全不安全。根据{{​​3}},存在可在2.6Ghz Pentium4处理器上运行的碰撞攻击。为了安全起见,MD5完全被破坏,自2005年以来一直被认为是这样。

如果您需要安全地散列某些内容,请使用一种更现代的散列算法,例如SHA-2,SHA-3(开发完成时)或Whirlpool。