为什么MD5 / SHA1密码哈希无法解密?

时间:2012-06-20 10:25:59

标签: password-encryption password-hash

我最近阅读了一篇关于password hashing的文章。

如何创建MD5或SHA1哈希,使其无法解密?我认为,它必须是某个FORMULA的字符串(它总是为同一个字符串提供相同的哈希值;因此必须没有随机化)这就是为什么我们应该能够通过相同的FORMULA解密它?或者人们不知道论坛?

3 个答案:

答案 0 :(得分:30)

MD5和SHA1不是加密算法。它们是散列算法。

这是单向公式。在特定字符串上运行MD5或SHA1会产生始终相同的哈希值。无法将函数反转以返回原始字符串。

例如:

  

15 Mod 4 = 3

即使你知道公式是

  

x Mod 4

你不能推断x,因为它可能是3,7,11,15等......

显然MD5和SHA1要复杂得多!

在上面的示例中,输入15将始终给出3的答案,但没有人能够推断出原始数字。这确实可以很好地解决多个输入字符串可以提供相同哈希的冲突:

http://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities

维基百科有关于所使用的特定算法的信息:

http://en.wikipedia.org/wiki/MD5#Algorithm

答案 1 :(得分:4)

一切都是由心理正确解释的,我想再补充一点:

  

15 Mod 4 = 3

     

即使你知道公式是

     

x Mod 4

     

你不能推断x,因为它可能是3,7,11,15等

我们可以更接近我们的情况并获得行动的结果(就像你有行动和行动描述的结果一样)

  

x mod 4 = 3

x可以是12,13,14或15,它们不会告诉我们输入的整数。

答案 2 :(得分:0)

我一直认为md5和sha1无法解密并在我的应用程序中使用过。但令我惊讶的是,我找到了一些执行该程序的网站。 见http://www.crypt-security.com/ 因此,此程序不够安全