可能重复的问题:
为什么 MD5 哈希值不可逆?
我在阅读有关 MD5 的问题时,想起了一些令我感到困惑的事情。这是一个非常简单的问题,如果它不好,请原谅我。 我只是无法理解如何使用某些算法将某物转换为一件东西,并且没有使用相反的算法将其转换回来。
那么,这怎么可能呢?
此外,由于多个字符串可以创建相同的MD5哈希,因为它比输入字符串少数据,所以任何其他哈希系统会更好吗?
可能重复的问题:
为什么 MD5 哈希值不可逆?
我在阅读有关 MD5 的问题时,想起了一些令我感到困惑的事情。这是一个非常简单的问题,如果它不好,请原谅我。 我只是无法理解如何使用某些算法将某物转换为一件东西,并且没有使用相反的算法将其转换回来。
那么,这怎么可能呢?
此外,由于多个字符串可以创建相同的MD5哈希,因为它比输入字符串少数据,所以任何其他哈希系统会更好吗?
基本上,涉及到的位运算意味着反转它在技术上是不可行的。为了构建一组输出,您需要疯狂的时间复杂度和巨大的内存复杂度。这并不是完全不可能的 - 但它不必是如此,仅仅超出了我们最好的超级计算机的能力。
字符串的熵增加了,因为在哈希过程中丢失了一些信息。这意味着没有足够的信息可用于重构原始字符串。