5

我最近读了一篇关于密码散列的文章。

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

4

2 回答 2

38

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

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

例如:

15 模 4 = 3

即使你知道公式是

x 模组 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

于 2012-06-20T10:31:20.903 回答
4

心理学正确地解释了一切,我想再补充一点:

15 模 4 = 3

即使你知道公式是

x 模组 4

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

我们可以更接近我们的情况并得到动作的结果(就像你有哈希作为动作和动作描述的结果)

x 模 4 = 3

x 可以是 12、13、14 或 15,这并不能说明我们有什么传入的整数。

于 2012-10-14T19:11:48.250 回答