【问题标题】:Is it possible to keep same md5 checksum of a file after content modification?内容修改后是否可以保持文件的相同 md5 校验和?
【发布时间】:2016-03-30 12:23:45
【问题描述】:

许多网站为可下载文件添加了 md5 校验和,以便用户可以根据下载文件的 md5 验证字符串。有人可以修改原始文件的内容但仍保留原始 md5 校验和吗?

【问题讨论】:

    标签: hash cryptography md5


    【解决方案1】:

    通常更改文件中的单个位将更改散列中大约 50% 的位。

    即使使用 MD5 也不可能进行更改并具有相同的哈希

    请注意,找到与已知哈希的冲突比仅找到任何冲突更难。 MD5 平均需要 2^127 次尝试,文件越长,每次尝试所需的时间就越多。

    应该使用 SHA256 或更好。 SHA256 只需要大约两倍于 MD5 的时间。

    【讨论】:

      【解决方案2】:

      是的,可以在不更改 MD5 校验和的情况下修改文件。这就是为什么迁移到更安全的散列算法(如 SHA-256)很重要的原因。出于安全考虑,MD5 和 SHA-1 几乎被认为已被弃用。

      维基百科有一个关于 MD5 安全问题的部分:

      https://en.wikipedia.org/wiki/MD5#Security

      【讨论】:

      • 试试看。不,在任何合理的时间内,它甚至可能不会使用 MD5。同意,不要使用 MD5。
      • 维基百科文章提到了一种“选择前缀冲突攻击,它可以在几小时内对具有指定前缀的两个输入产生冲突”。我没有在回答中说“原始”和“修改”文件是否由同一个人同时创建。
      • 选择前缀冲突并不真正适用于 OP 的场景,因为原始文件必须保持固定。这需要第二次原像攻击,即使在 MD5 上也不太实用。
      【解决方案3】:

      这取决于您所谈论的上下文。如果您询问对文件的随机更改是否会导致文件具有相同的 MD5,那么答案是肯定的,理论上是可能的,但极不可能。另一方面,如果您谈论的是有积极攻击者的情况,那么是的,它更有可能。 MD5 是no longer considered cryptographically secure

      【讨论】:

        【解决方案4】:

        md5 校验和的想法是原始文件上的每一位都保持不变。尽管该算法可能存在冲突,但 md5 保持不变的可能性不大。所以你应该更新 md5 文件以及检查它的工具或完全删除它,这样检查它的工具就会失败。

        如果您更新原始版本并保留旧的 md5,那么您将禁止关心校验和的工具。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-21
          • 2012-05-18
          相关资源
          最近更新 更多