Hash 如果部分消息已知,如何获取MD5原始消息?

Hash 如果部分消息已知,如何获取MD5原始消息?,hash,cryptography,Hash,Cryptography,假设我有m1和md5(m1+m2)。如何恢复m2?您不能。从设计上讲,安全散列是无法逆转的。除此之外,MD5散列数(2^128)少于m2的可能值(实际上是无限的),因此不可能有一个唯一的正确答案。你不能。从设计上讲,安全散列是无法逆转的。除此之外,MD5散列数(2^128)少于m2的可能值(实际上是无限的),因此不可能有一个唯一的正确答案。尼克的答案是正确的 我只想指出,如果你知道m2的长度,如果不是太长,原则上你可以尝试m2的所有可能值,直到你找到与md5(m1+m2)匹配的值。例如,如果m1

假设我有
m1
md5(m1+m2)
。如何恢复
m2

您不能。从设计上讲,安全散列是无法逆转的。除此之外,MD5散列数(2^128)少于
m2的可能值(实际上是无限的),因此不可能有一个唯一的正确答案。

你不能。从设计上讲,安全散列是无法逆转的。除此之外,MD5散列数(2^128)少于m2的可能值(实际上是无限的),因此不可能有一个唯一的正确答案。

尼克的答案是正确的


我只想指出,如果你知道m2的长度,如果不是太长,原则上你可以尝试m2的所有可能值,直到你找到与md5(m1+m2)匹配的值。例如,如果m1是密码中的盐,m2是实际密码,那么我刚才概述的确实是可能的。在大多数情况下,m2的长度为8-12个字符。如果您将自己限制在可以从标准键盘输入的字符范围内,则上述情况很有可能发生,并且确实用于破解密码。

尼克的答案是正确的


我只想指出,如果你知道m2的长度,如果不是太长,原则上你可以尝试m2的所有可能值,直到你找到与md5(m1+m2)匹配的值。例如,如果m1是密码中的盐,m2是实际密码,那么我刚才概述的确实是可能的。在大多数情况下,m2的长度为8-12个字符。如果您将自己限制在可以从标准键盘输入的字符范围内,则上述情况很有可能发生,并且确实可用于破解密码。

仅通过猜测
m2
。如果
m2
足够容易猜测(例如典型密码),则可以恢复密码。仅通过猜测
m2
。如果
m2
足够容易猜到(例如,一个典型的密码),就有可能恢复它。我总是发现散列函数的美妙之处。有无限多的碰撞,但我们找不到一个…我总是发现哈希函数的美妙之处。有无限多的碰撞,但我们找不到一个…