【问题标题】:md5 decoding. How they do it?md5 解码。他们是怎么做到的?
【发布时间】:2011-03-04 04:57:45
【问题描述】:

我认为解码 md5 哈希是不可能的,但我找到了可以解码它们的工具 here。但我不知道,他们是如何在这么短的时间内做到的(大约需要一秒钟)。

请帮助我理解它。

谢谢

【问题讨论】:

  • 它会在网站本身上告诉您:“此工具会在多个数据库中搜索未编码版本的 MD5 哈希。” – 基本思想:很多人将随机 md5 哈希添加到数据库中,您只需在输入哈希时反向查找它们。与解码无关。
  • 为什么很难想象?磁盘空间很便宜。在 MySQL 中(假设 key 小于 255 字节),每行只有大约 40 到 300 字节。然后,您需要做的就是编写一个脚本来解析字典并添加每个单词的 md5...
  • 即使查看常用词的 md5 哈希值也能产生很好的结果。
  • 要明确:您正在查找 a 可能的原始字符串,而不是原始字符串,因为您可以开始使用的可能字符串比可能的 md5 大得多散列。

标签: security hash md5 decoding


【解决方案1】:

它不解码 MD5 哈希。它使用所谓的rainbow table...这就是为什么使用salted hashes 而不是直接存储哈希如此重要的原因...

【讨论】:

  • salted hashes 仍然可以被破坏。
  • 从技术上讲,彩虹表甚至根本不适用于这种情况,因为要散列的可能字符串数量不限。该站点仅使用“通用”哈希数据库。彩虹表!= 数据库查找。
  • @Charles,我没有看到该网站在任何地方描述了他们的确切数据库架构,所以我不清楚你为什么得出没有彩虹表的结论。
  • 当然,盐渍哈希仍然可以被破坏。但它比无盐哈希要困难得多,因为您既需要知道盐,又需要为该盐生成一个表......
【解决方案2】:

不可能解码 MD5 哈希,因为它是一种单向算法,它们将拥有一个预先计算的哈希数据库和用于生成哈希然后执行查找的字符串。

【讨论】:

    【解决方案3】:

    网页实际上包含了答案:

    数据库包含数百万个 MD5 哈希及其解密形式。

    如果你散列一个像“Hello World”这样的微不足道的字符串,它很可能存在于那个数据库中。但是输入一长串奇怪的文字,例如“H3ll0 Wh1rrl3d!?!”并且“转换”将失败,因为它不会存在于哈希数据库中。 (虽然我的“奇怪”字符串似乎被解码了?!?)

    重要提示:


    • 来自站点的注意事项:任何经过 MD5 散列的数据都会存储以供查找。不要使用此表单对敏感数据进行编码

    哈哈。这就是为什么您在网站上散列的任何内容都会以解码后的形式返回!每次使用该站点散列某些内容时,都会增加数据库的大小和功能!

    【讨论】:

      【解决方案4】:

      它说得很清楚:这个工具在多个数据库中搜索未编码版本的 MD5 哈希

      【讨论】:

        【解决方案5】:

        一般中,这仍然是计算上难以处理的。但是,rainbow tables 有助于定位已知的原像。它仅在原图像基于常见字符串(例如字典单词)并且不使用盐时才有效。这就是他们所说的“这个工具搜索多个数据库”的意思。

        【讨论】:

          猜你喜欢
          • 2011-01-24
          • 1970-01-01
          • 1970-01-01
          • 2010-12-07
          • 1970-01-01
          • 2012-11-22
          • 1970-01-01
          • 2011-12-11
          • 1970-01-01
          相关资源
          最近更新 更多