MD5能被破解吗?搞了这么多编程,这新闻叫我。。。
MD5 可以被破解。MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它产生一个128位(16字节)的散列值(通常以一个32位的十六进制数表示)。然而,随着计算机技术和密码学研究的进步,MD5算法的安全性已经受到了严重质疑。
MD5存在多种安全弱点,包括但不限于:
鉴于上述原因,MD5不再被认为是安全的,并且建议在新应用中使用更安全的散列函数,如SHA-256或更高版本的SHA系列算法。这些算法提供了更强的抗碰撞能力和更高的安全性。
不能破解,但是可以撞(碰撞攻击)。因为MD5并不是加密,而是算法。
单纯就是计算出来一个固定长度的 hash 值。
一般是作为数据校验作用。对比当前数据和初始数据是否一致(因为算法是固定的,输入也是固定的,那么产出的结果也应该是一致的)。
MD5是摘要算法,摘要就是摘取关键信息,大部分信息会被丢弃,所以MD5不可逆。
既然是摘要它就有两个问题,
1.每次摘要的结果过都一样,所以可以通过记录摘要结果和原文,然后拿到一段原文进行MD5摘要计算,将结果和你的记录进行对比而反推出原文,也就是大家说的破解
2.不通内容的摘要计算结果可能一样,这样意味着可能存在多个不一样的原文密码,但这种概率是很低的,但不意味着不存在。
MD5本来就不是加密算法,它是消息摘要算法。
简单地说就是将原数据按一定规律摘抄一些数据下来生成一个hash 值 特征码。
所以MD5一般是做数据校验,验证网络传输前后的数据是否有错。
所以MD5是没办法破解(或者说逆向的),但是MD5用了这么久,网络上已经有足够多的MD5生成的hash值库可以让你去逆(撞)向(库)了。因为1生成的MD5必定a,2生成的必定是b,完全可以撞出来。
之所以MD5可以用来校验密码,纯粹就是偷懒。把原密码加盐(一串没有意义但固定的字符)再MD5拿去验证,可以增加撞库的难度,和破解密码的难度。
看了一下别人的解析,大概是这样的
第三点是可以利用的,例如我是软件作者,我可以利用这种技术生成一个安全的版本和有毒的版本,其中把安全的版本拿去审核,然后最终发布的时候使用有毒的版本。只不过目前应该都使用 sha 了
她本来就是密码学专家,好像也确实是坐月子期间破解的,不过这新闻标题纯为了热度