【问题标题】:MD5 hash decryption when knowing part of input知道部分输入时的 MD5 哈希解密
【发布时间】:2015-11-19 12:40:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: hash md5 brute-force


    【解决方案1】:

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

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

    【讨论】:

    • 知道部分字符串加速蛮力。另外,您忘记了 Rainbow 表。
    • 可能不是您的原始字符串(哈希冲突)。”与部分已知的输入进行比较,关闭,继续。
    【解决方案2】:

    如果您对未知部分有足够的了解,例如“它是一个常见的英语单词”或“它是一个 6 位数字”,那么您就可以暴力破解所有可能性来获得正确的部分。 “足够”意味着搜索空间对于蛮力来说足够小。

    【讨论】:

      【解决方案3】:

      假设我们没有尝试使用破解技术,我们正在讨论解密以用于网络应用程序或类似的东西。

      散列不是加密,这意味着密码不存储在散列中,并且 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/

      【讨论】:

      • 为什么“网络应用或类似的东西”需要反转消化算法的输出?
      【解决方案4】:

      如果您有部分原始文本,是否可以解密 MD5 哈希?

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

      从理论上讲,因为成本(时间)与密钥空间有关,并且减少不一定会导致可管理的大小。然而,消除碰撞的能力增加了辨别实际输入的可能性(否则这是不可能的)。

      Related.

      【讨论】:

        猜你喜欢
        • 2016-10-29
        • 2010-12-06
        • 1970-01-01
        • 2010-12-01
        • 2011-06-05
        相关资源
        最近更新 更多