MD5可以被破解吗?

MD5能被破解吗?搞了这么多编程,这新闻叫我。。。
image.png
image.png
image.png

阅读 1.5k
avatarAI BotBETA

MD5 可以被破解。MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它产生一个128位(16字节)的散列值(通常以一个32位的十六进制数表示)。然而,随着计算机技术和密码学研究的进步,MD5算法的安全性已经受到了严重质疑。

MD5存在多种安全弱点,包括但不限于:

  1. 碰撞(Collision):MD5算法容易受到碰撞攻击,即两个不同的输入可能会产生相同的输出(散列值)。这意味着攻击者可以构造出两个完全不同的消息,它们具有相同的MD5散列值。这在数字签名和文件完整性验证等应用中是非常危险的。
  2. 预映射(Preimage Attack):虽然找到给定MD5散列值的原始输入(预映射)在计算上仍然是不可行的,但随着计算能力的发展,这种攻击的风险正在增加。
  3. 安全性评估:MD5的设计初衷是为了满足一定的安全性需求,但现代密码学评估认为它已不足以提供足够的安全性。因此,MD5已被许多安全敏感的应用(如密码存储)所弃用。

鉴于上述原因,MD5不再被认为是安全的,并且建议在新应用中使用更安全的散列函数,如SHA-256或更高版本的SHA系列算法。这些算法提供了更强的抗碰撞能力和更高的安全性。

7 个回答

她本来就是密码学专家,好像也确实是坐月子期间破解的,不过这新闻标题纯为了热度

不能破解,但是可以撞(碰撞攻击)。因为MD5并不是加密,而是算法。
单纯就是计算出来一个固定长度的 hash 值。

一般是作为数据校验作用。对比当前数据初始数据是否一致(因为算法是固定的,输入也是固定的,那么产出的结果也应该是一致的)。

深入理解MD5:Message Digest Algorithm 5

是的,MD5 已经不再安全。建议改用其它算法如 SHA

MD5是摘要算法,摘要就是摘取关键信息,大部分信息会被丢弃,所以MD5不可逆。
既然是摘要它就有两个问题,
1.每次摘要的结果过都一样,所以可以通过记录摘要结果和原文,然后拿到一段原文进行MD5摘要计算,将结果和你的记录进行对比而反推出原文,也就是大家说的破解
2.不通内容的摘要计算结果可能一样,这样意味着可能存在多个不一样的原文密码,但这种概率是很低的,但不意味着不存在。

MD5不在是安全的;强烈建议使用sha256

MD5本来就不是加密算法,它是消息摘要算法。
简单地说就是将原数据按一定规律摘抄一些数据下来生成一个hash 值 特征码
所以MD5一般是做数据校验,验证网络传输前后的数据是否有错。

所以MD5是没办法破解(或者说逆向的),但是MD5用了这么久,网络上已经有足够多的MD5生成的hash值库可以让你去逆(撞)向(库)了。因为1生成的MD5必定a,2生成的必定是b,完全可以撞出来。
之所以MD5可以用来校验密码,纯粹就是偷懒。把原密码加盐(一串没有意义但固定的字符)再MD5拿去验证,可以增加撞库的难度,和破解密码的难度。

看了一下别人的解析,大概是这样的

  1. 获取到: MD5 字符串,
    首先从理论上是不可能还原出原文的,而且目前还做不到生成一段文本来匹配获取到的 MD5 字符串,当然排除暴力手段。
  2. 获取到: MD5 字符串,MD5 字符串对应的原文
    目前还做不到修改原文后,让修改的文本能匹配获取到 MD5 字符串。
  3. 获取到: 原文
    修改原文,并提供另一段文本,让另一段文本和修改后的原文的 md5 字符串一样,目前做到了。这个应该就是王小云团队做的事情。

第三点是可以利用的,例如我是软件作者,我可以利用这种技术生成一个安全的版本和有毒的版本,其中把安全的版本拿去审核,然后最终发布的时候使用有毒的版本。只不过目前应该都使用 sha 了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏