有人告诉我,他看到过软件系统:
- 从其他系统中检索MD5加密密码;
- 解密加密的密码并且
- 使用该系统自己的算法将密码存储在系统数据库中。
这种情况可能吗? 我原以为无法解密MD5哈希。
我知道有MD5字典,但是否存在实际的解密算法呢?
有人告诉我,他看到过软件系统:
这种情况可能吗? 我原以为无法解密MD5哈希。
我知道有MD5字典,但是否存在实际的解密算法呢?
H(X)
验证密码是否正确,即使H(X)
是密码哈希。密码哈希仍然是确定性的,因此如果任何人都知道所有输入和哈希算法本身,那么X
可用于计算H(X)
,结果可以进行比较。MD5 被认为是不安全的,不是因为你可以从哈希中获取原始内容,而是因为通过工作,你可以制作出两个消息并且它们会哈希到相同的哈希值。
你无法对一个 MD5 哈希进行反向操作。
唯一可行的方法是使用字典攻击工具(如果我们提到密码只是经过哈希处理,没有添加任何种类的盐以防止重放攻击,如果是这样,您必须知道盐值),获取许多单词、数字等文件,然后创建两行,一行是单词、数字(在字典中),另一行是单词的哈希值,并比较哈希值,如果匹配则找到了密码...
这是唯一的方法,而不需要进行密码分析。
MD5 有其弱点(参见维基百科),因此有一些项目试图预计算哈希值。维基百科也提到了其中的一些项目。我知道的一个(并且很尊重)是 ophrack。您不能告诉用户他们自己的密码,但您可能能够告诉他们一个有效的密码。但我认为:如果他们忘记了,请给他们发送一个新密码。