知道部分输入时的MD5哈希解密

MD5 hash decryption when knowing part of input

如果你有部分原文,是否可以解密MD5哈希?喜欢:

Text     : hi how are you?
MD5 hash : 31a015d54f92382d2cee35eb2f0cc556

MD5 哈希无法解密,但如果我知道部分文本,如 hi how are,这有帮助吗?

不,你不能,即使是部分字符串。

通过暴力破解,您可以找到生成相同 MD5 散列的组合,但此组合可能是也可能不是您的原始字符串(散列冲突)。

如果您知道关于未知部分的足够信息,例如 "it is one common English word" 或 "it is a 6 digit number",那么您可以暴力破解所有可能性来获得正确的部分。 "Enough" 表示搜索 space 足够小以进行暴力破解。

假设我们不是在尝试使用破解技术,而是在谈论解密以用于网络应用程序或类似的东西。

散列不是加密,这意味着密码不存储在散列中并且 MD5 散列是单向的。这意味着我们无法从散列中取回密码,但如果我们同时提供两者,我们可以知道散列可能来自密码。另一个密码产生相同散列的可能性非常小,这称为冲突。但是这种碰撞的可能性被认为可以忽略不计。

不过MD5已经被破解,不再安全。用别的东西。你可以阅读如何破解它,如果那是你想要做的。

https://security.stackexchange.com/questions/38141/if-hashing-is-one-way-why-can-we-decrypt-md5-hashes

http://www.zdnet.com/article/md5-password-scrambler-no-longer-safe/

Is it possible to decrypt an MD5 hash if you have part of the original text?

如果应用穷举密钥搜索(暴力)攻击,那么理论上答案是肯定的,因为了解消化算法的部分输入有助于通过以下方式确定其完整的原始输入:

理论上,因为成本(时间)与关键 space 相关,并且减少不一定会导致可管理的大小。但是,消除冲突的能力增加了辨别 实际 输入的可能性(否则不可能)。

Related.