我最近读了一篇关于密码散列的文章。
如何创建 MD5 或 SHA1 哈希使其无法解密?我的想法是,它必须通过某些 FORMULA 加密字符串(它总是为相同的字符串提供相同的哈希值;所以必须没有随机化),这就是为什么我们应该能够用相同的 FORMULA 解密它?或者人们不知道论坛?
我最近读了一篇关于密码散列的文章。
如何创建 MD5 或 SHA1 哈希使其无法解密?我的想法是,它必须通过某些 FORMULA 加密字符串(它总是为相同的字符串提供相同的哈希值;所以必须没有随机化),这就是为什么我们应该能够用相同的 FORMULA 解密它?或者人们不知道论坛?
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
维基百科有关于使用的特定算法的信息:
心理学正确地解释了一切,我想再补充一点:
15 模 4 = 3
即使你知道公式是
x 模组 4
你不能推断出 x,因为它可能是 3、7、11、15 等
我们可以更接近我们的情况并得到动作的结果(就像你有哈希作为动作和动作描述的结果)
x 模 4 = 3
x 可以是 12、13、14 或 15,这并不能说明我们有什么传入的整数。