能否解密MD5哈希值?

289

有人告诉我,他看到过软件系统:

  1. 从其他系统中检索MD5加密密码;
  2. 解密加密的密码并且
  3. 使用该系统自己的算法将密码存储在系统数据库中。

这种情况可能吗? 我原以为无法解密MD5哈希。

我知道有MD5字典,但是否存在实际的解密算法呢?


9
还原MD5会产生多个密码。 - Carles Company
285
MD5 是一种摘要算法。可以将其想象成将一头牛变成牛排。现在试图反转这个过程。 - Mechanical snail
5
据我理解,是的,但前提是你必须有大量这样的东西。即使你有大量的这些东西,你也无法进行反向操作,因为该算法故意丢失信息。 - Jordan
10
鉴于这个比喻,人们可以从牛排上的DNA完美地克隆出一份完全相同的复制品。 :)) - Trimikha Valentius
10
MD5是一种摘要算法。把它想象成吃牛排>消化>输出的过程。现在试着反过来做。 - user4157124
显示剩余6条评论
24个回答

1

不行,这是不可能的。你可以使用字典,或者尝试哈希不同的值,直到得到你想要的哈希值。但它无法被“解密”。


我看到了一个网站,可以将MD5加密后的文本反转回原始文本:http://md5.gromweb.com/。那么这是如何实现的呢? - samach
2
@samach321 - 很简单:他们有一个哈希字符串的数据库。无论您在他们的“将字符串转换为MD5哈希”框中输入什么,都会添加到数据库中。尝试从另一个来源获取MD5哈希并输入。除非它是他们数据库中的内容,否则您将不会得到结果。 - Vilx-
顺便说一下,它被称为彩虹表。来自维基百科的定义:"彩虹表是一个预先计算的表格,用于缓存加密哈希函数的输出,通常用于破解密码哈希值。" - Jordan Arsenault
@JordanArseno - 我知道。对于这个任务来说,它是一种高效的数据结构,但归根结底,它仍然只是一种(非常特定的)数据库。 - Vilx-

0

MD5是一种密码学(单向)哈希函数,因此没有直接的方法来解码它。密码哈希函数的整个目的在于您无法撤消它。

您可以尝试暴力破解策略,其中您猜测被哈希的内容,然后使用相同的函数进行哈希并查看是否匹配。除非被哈希的数据很容易猜测,否则可能需要很长时间。


-1

目前还无法将密码的哈希值放入算法中并以明文形式获取密码,因为哈希是单向的。但人们所做的是生成哈希并将其存储在一个大表中,这样当您输入特定的哈希时,它会检查密码匹配哈希的表,并将该密码返回给您。一个执行此操作的网站示例是http://www.md5online.org/。现代密码存储系统通过使用盐算法来对抗此问题,使得在注册期间将相同的密码输入到密码框中会生成不同的哈希值。


-2

不,你不能解密/反转MD5,因为它是一种单向哈希函数,除非你能在MD5中找到广泛的漏洞。另一种方法是有一些网站拥有大量的密码数据库集合,因此您可以在线尝试解码您的MD5或SHA1哈希字符串。 我尝试了一个网站,像http://www.mycodemyway.com/encrypt-and-decrypt/md5这样的网站对我来说运行良好,但这完全取决于您的哈希是否存储在该数据库中,如果是,则可以获取实际字符串。


2
不,MD5不是加密,甚至不是单向加密(这在第一时间就没有意义)。 - Maarten Bodewes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接