【问题标题】:Decoding MD5 Hash into unicode [duplicate]将 MD5 哈希解码为 un​​icode [重复]
【发布时间】:2018-01-29 08:28:52
【问题描述】:

ร编码成0f93821e0fbc6d3736da7df2c73024aa

我想知道是否可以将哈希解码回 unicode 形式。如果是这样,我该如何处理或如何执行此操作。

感谢您的帮助。

【问题讨论】:

    标签: encryption unicode hash md5 decode


    【解决方案1】:

    Whites11 提到了暴力破解,但请注意这不是“解码”哈希。这只是对公共输入进行哈希处理并比较两个哈希值以查看它们是否匹配,除非您有一组可能实际上与哈希匹配的公共输入,否则您不太可能得到任何结果。

    哈希是故意单向的,我想不出你为什么需要,或者你可能需要重新考虑你正在做的任何项目的逻辑。

    总而言之,您无法解码散列,这是故意的,这就是散列算法存在的原因。暴力破解是对常见输入进行散列,以查看它们是否与您的散列匹配。它通常用于密码破解等。使用常见的密码数据集完成。所以在你的情况下可能没有用。

    http://www.md5online.org 是一个很好的暴力破解示例,它是一个包含以前暴力破解/测试过的哈希及其 unicode 输入的数据库。您可以尝试对“密码”之类的基本单词进行哈希处理并将其放入其中,如果它是已知哈希值,它应该会显示原始的 unicode 输入!

    这里有 2 个内容丰富的优秀视频,涵盖了哈希算法和暴力破解哈希: https://www.youtube.com/watch?v=b4b8ktEV4Bg https://www.youtube.com/watch?v=7U-RbOKanYs

    【讨论】:

    • @qttqtt 没问题,伙计。如果你看我的编辑,有 2 个关于哈希算法和暴力破解哈希主题的非常好的视频(这个家伙使用大学的超级计算机进行暴力破解,这很酷)。
    【解决方案2】:

    哈希的重点是为任意输入呈现一个固定长度的输出,其属性是相同的输入导致相同的输出。像 MD5 或 SHA-1 这样的加密哈希函数甚至被设计成不能轻易反转。因此,不,你不能那样做。

    另外,作为一个思考练习,它表明在一般情况下它无法工作:MD5 是 128 位长,那么你怎么可能恢复比这更大的输入呢?有无数个字符串会变成相同的摘要,因此虽然您可以找到具有相同哈希的 a 字符串,但不能保证找到您开始使用的那个。

    【讨论】:

    • 好的,谢谢您的信息。 @whites11 提到了一些关于暴力破解的东西,我会试一试。
    • 这就是我在上一段中提到的寻找具有相同哈希值的字符串的部分。在任何情况下,由于散列算法对字节序列进行操作,因此要获得返回原始字符串的任何希望,您还需要知道使用了哪种 Unicode 编码以及是否应用了规范化(以及哪种)。一般来说,你问的问题是相当荒谬的,因为答案只是“否”。所以我怀疑你的实际问题和目的略有不同。
    【解决方案3】:

    m5d 是一种散列算法,本质上是单向的。

    你只是无法“解码”它。

    你唯一的选择是暴力破解。

    【讨论】:

    • 是否可以通过暴力破解获得 unicode 输出?
    • 暴力破解意味着您测试所有可能的输入组合(包括带有 unicode 字符的输入),直到找到相应的 md5 哈希。
    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2014-03-13
    • 2011-06-05
    • 1970-01-01
    • 2011-02-11
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多