Hash 可以解密MD5哈希吗?
有人告诉我,他看到的软件系统:Hash 可以解密MD5哈希吗?,hash,cryptography,md5,encryption,Hash,Cryptography,Md5,Encryption,有人告诉我,他看到的软件系统: 从其他系统检索MD5加密密码 解密加密的密码和密码 使用系统自己的算法将密码存储在系统的数据库中 可能吗?我认为解密MD5哈希是不可能/不可行的 我知道有MD5字典,但有实际的解密算法吗?没有。MD5不是加密(尽管它可能被用作某些加密算法的一部分),它是一种单向加密。在转换过程中,许多原始数据实际上“丢失” 想想看:MD5的长度总是128位。这意味着有2128个可能的MD5哈希。这是一个相当大的数字,但绝对是有限的。然而,一个给定的散列函数有无限多个可能的输入(其
一旦一段数据通过散列函数运行,就无法返回。不是直接返回。由于,有(可能)多个值散列到任何给定的MD5输出。因此,你不能肯定地逆转它。此外,MD5使得查找任何此类反向散列变得困难(但也有一些攻击会产生——也就是说,产生两个散列到相同结果的值,但您无法控制结果MD5值是什么)
但是,如果将搜索空间限制为(例如)长度小于N的通用密码,则可能不再具有不可逆性属性(因为MD5输出的数量远大于感兴趣域中的字符串数量)。然后,您可以使用或类似于反向哈希。不,不能这样做。您可以使用字典,也可以尝试对不同的值进行散列,直到得到要查找的散列。但是它不能被“解密”。不,他一定对MD5字典感到困惑
加密散列(MD5等)是一种方法,只有摘要才能返回原始消息,除非您有一些关于原始消息的其他信息,等等。MD5被视为已损坏,不是因为您可以从散列中返回原始内容,而是因为通过工作,您可以创建两条散列到同一散列的消息 您无法取消MD5哈希的散列。解密(以算法方式直接从散列值获取纯文本),否
然而,也有一些方法使用了所谓的。如果你的密码是无盐散列的,这是非常可行的。理论上你不能。散列的全部意义在于它只是单向的。这意味着,如果有人设法获取哈希列表,他们仍然无法获取您的密码。此外,这意味着即使有人在多个站点上使用相同的密码(是的,我们都知道我们不应该这样做,但是…),任何能够访问站点A数据库的人都不能在站点B上使用用户的密码 MD5是散列的事实也意味着它会丢失信息。对于任何给定的MD5散列,如果允许任意长度的密码,则可能会有多个产生相同散列的密码。对于一个好的散列,在计算上不可能找到超过一个非常小的最大长度的密码,但是这意味着如果你找到一个包含目标散列的密码,它肯定是原始密码,这是没有保证的。从天文学上讲,你不太可能看到两个只有ASCII码、长度合理、具有相同MD5哈希的密码,但这并非不可能 MD5是用于密码的错误哈希:
- 它的速度很快,这意味着如果你有一个“目标”散列,那么尝试大量密码,看看你是否能找到一个散列到该目标的密码是很便宜的。Salting对这种情况没有帮助,但它有助于提高查找与使用不同salt的多个哈希中的任何一个匹配的密码的成本
- 我相信它有一些已知的缺陷,这些缺陷使得查找冲突变得更容易,尽管在可打印文本(而不是任意二进制数据)中查找冲突至少会更难