![MD5 Hash 可以逆向或者破解吗?](https://linux22.com/image/1613782/MD5%20Hash%20%E5%8F%AF%E4%BB%A5%E9%80%86%E5%90%91%E6%88%96%E8%80%85%E7%A0%B4%E8%A7%A3%E5%90%97%EF%BC%9F.png)
我尝试此链接(https://md5.gromweb.com/) 对一些密钥 (比如密钥 A) 进行哈希处理,然后将其反转回来,而 MD5 不应该是可逆的,对吧?不知何故,这个网站可以轻松做到这一点。
所以,我对它的实际工作原理感到怀疑和好奇。当我在另一个(任何)网站上散列一些密钥(假设密钥 B)(在这个网站上尝试了不同的密钥)并尝试通过该网站将其反转回来时,它不起作用。
但是,当我在该网站中对相同的密钥(密钥 B)进行哈希处理并将其反转回来时。这有效吗?该网站是否真的将其完成的所有哈希保存在其字典中?那么,我通过该网站进行哈希处理的密钥是否被泄露并且不再安全?
旁注:我尝试过的所有密钥都是一串长随机字符串,其中包含字母数字 + 大写/小写 + 特殊字符。
答案1
如果你仔细想想,就会发现哈希值不可能具有唯一可逆性,因为它可以采用任意数量的字符并将其表示为较短的数字。因此,一定有多个字符串具有相同的哈希值。(这称为碰撞)。
如果您阅读您链接到的页面的右侧 - 它确实确认它正在使用一个字典,其中包含几百万个 md5 字符串及其常见的对应密码的列表 - 所以这就是您的答案。
您可能感兴趣freerainbowtables.com。该网站包含“彩虹表”列表。同样,如果您将密钥输入到破解网站,则很有可能该网站已将其添加到其表中。
您通过网站散列的密钥可能会或可能不会被泄露,具体取决于您使用的密钥、网站和用途。如果有疑问,请将其视为已泄露。
答案2
MD5 哈希值只有 2^128 个,而字符串的数量是无限的,所以每个 MD5 哈希值相当于无限数量的字符串(因为无限个数除以有限个数就是无限个)。
因此,即使某些算法可以反转 MD5 哈希值,也不只有一个正确答案。
类似这样的著名单词的 MD5 哈希值admin
如下:
21232f297a57a5a743894a0e4a801fc3
如果你搜索这个哈希值,搜索结果中会有很多记录表明这个哈希值是admin
,这只是因为它是该哈希值的等价物之一,才真正有意义。
然而,由于个人计算机的处理能力也提升得非常快,最好不要再对密码和重要数据使用 MD5 哈希值了。