有人告诉我,他见过的软件系统:
这有可能吗?我认为解密MD5散列是不可能的/不可行的。
我知道有MD5字典,但是有真正的解密算法吗?
发布于 2009-09-24 13:20:56
你不能-在理论上。散列的全部意思是它只是一种方式。这意味着,如果有人设法获得哈希列表,他们仍然无法获得您的密码。此外,这意味着即使有人在多个站点上使用相同的密码(是的,我们都知道我们不应该使用,但是.)任何访问站点A的数据库的人都不能在站点B上使用用户的密码。
MD5是一个散列的事实也意味着它会丢失信息。对于任何给定的MD5哈希,如果允许任意长度的密码,则可能有多个密码产生相同的哈希。对于一个好的散列,在计算上不可能找到超过一个非常琐碎的最大长度,但是这意味着如果您找到一个具有目标哈希的密码,它肯定是原始密码。从根本上说,你不太可能看到两个ASCII--只有合理长度的密码--具有相同的MD5哈希,但这不是不可能的。
MD5是用于密码的一个糟糕的散列:
我不是一个安全专家,所以不会提出一个具体的建议以外的“不要滚动您自己的认证系统”。从有信誉的供应商那里找到一个,并使用它。安全系统的设计和实现都是一项棘手的工作。
发布于 2009-09-24 13:23:25
从技术上讲,是“可能的”,但在非常严格的条件下, (彩虹桌,基于用户密码在哈希数据库中的可能性很小)强制执行。
但这并不意味着
--您不想“反转” MD5 散列。使用下面概述的方法的,您将永远不需要这样做。“反向”(‘Reversing) MD5实际上被认为是恶意--一些网站提供了破解MD5哈希的能力,但它们都是包含字典单词、先前提交的密码和其他单词的大型数据库。有一个很小的可能性,它将使您需要的MD5哈希反转。,如果您有 盐渍 MD5散列--这也不起作用!:)
使用MD5哈希应该使用工作的登录方式是:
注册期间的:
用户创建密码->密码使用存储在数据库中的MD5 ->哈希进行散列。
登录期间的:
用户输入用户名和密码-> (用户名检查)密码使用MD5哈希哈希与数据库中存储的哈希进行比较。
当需要“丢失密码”时:
2选项:
或
发布于 2009-08-06 19:28:06
不是直接的。由于针孔原理,(可能)有多个值可以散列到任何给定的MD5输出。因此,你不可能有把握地逆转它。此外,MD5是为了很难找到任何这样的反向哈希(然而,存在产生碰撞的攻击--也就是说,生成两个哈希值到相同的结果,但您无法控制结果的MD5值)。
但是,如果将搜索空间限制在例如,长度在N以下的公共密码,则可能不再具有不可逆性属性(因为MD5输出的数量远远大于感兴趣域中的字符串数量)。然后,您可以使用彩虹台或类似的反向散列。
https://stackoverflow.com/questions/1240852
复制相似问题