Cryptography MD5的漏洞是什么?如何补救?

Cryptography MD5的漏洞是什么?如何补救?,cryptography,md5,hash-function,Cryptography,Md5,Hash Function,可能重复: MD5中的漏洞是什么?有哪些补救措施?另外,非技术人员应该关注哪些问题?技术人员应该关注哪些与MD5相关的问题?不要使用MD5。改用SHA-2(或更高版本) 发件人: 美国国土安全部的US-CERT表示,MD5“应被视为密码破坏,不适合进一步使用,……”,2010年后,大多数美国政府应用程序将被要求迁移到SHA-2哈希函数家族 MD5已损坏,因为它作为加密哈希失败。具体来说,它不再有第二个前像阻力,假设我们有 h = MD5(d) 其中,d是一个文档,h是它的MD5散列。我现在可

可能重复:

MD5中的漏洞是什么?有哪些补救措施?另外,非技术人员应该关注哪些问题?技术人员应该关注哪些与MD5相关的问题?

不要使用MD5。改用SHA-2(或更高版本)

发件人:

美国国土安全部的US-CERT表示,MD5“应被视为密码破坏,不适合进一步使用,……”,2010年后,大多数美国政府应用程序将被要求迁移到SHA-2哈希函数家族


MD5已损坏,因为它作为加密哈希失败。具体来说,它不再有第二个前像阻力,假设我们有

h = MD5(d)
其中,
d
是一个文档,
h
是它的MD5散列。我现在可以找到
d1
,这样
MD5(d1)=h
。这意味着我可以找到第二个声称具有相同哈希的前映像。更糟糕的是,我可以制作一个文档并修改它的隐藏部分,直到得到相同的散列

这意味着我可以给你提供一个虚假的文档,而你的散列检查会认为它是原件

从某种意义上讲,MD5仍然是一个陷门,您无法仅从
h
重建
d
。它已被用于密码加密,但您永远不能这样做。对于密码的密钥派生,应该使用PBKDF2、bcrypt或(最好)scrypt


SHA1在石棺上也有凹痕。这就是为什么要选择SHA-2或更高的哈希函数。

维基百科是你的朋友。同一篇文章包括为什么(不抗冲突)和一些(部分)补救措施(使用salt进行密码哈希)