【发布时间】:2016-03-30 12:23:45
【问题描述】:
许多网站为可下载文件添加了 md5 校验和,以便用户可以根据下载文件的 md5 验证字符串。有人可以修改原始文件的内容但仍保留原始 md5 校验和吗?
【问题讨论】:
标签: hash cryptography md5
许多网站为可下载文件添加了 md5 校验和,以便用户可以根据下载文件的 md5 验证字符串。有人可以修改原始文件的内容但仍保留原始 md5 校验和吗?
【问题讨论】:
标签: hash cryptography md5
通常更改文件中的单个位将更改散列中大约 50% 的位。
即使使用 MD5 也不可能进行更改并具有相同的哈希
请注意,找到与已知哈希的冲突比仅找到任何冲突更难。 MD5 平均需要 2^127 次尝试,文件越长,每次尝试所需的时间就越多。
应该使用 SHA256 或更好。 SHA256 只需要大约两倍于 MD5 的时间。
【讨论】:
是的,可以在不更改 MD5 校验和的情况下修改文件。这就是为什么迁移到更安全的散列算法(如 SHA-256)很重要的原因。出于安全考虑,MD5 和 SHA-1 几乎被认为已被弃用。
维基百科有一个关于 MD5 安全问题的部分:
【讨论】:
这取决于您所谈论的上下文。如果您询问对文件的随机更改是否会导致文件具有相同的 MD5,那么答案是肯定的,理论上是可能的,但极不可能。另一方面,如果您谈论的是有积极攻击者的情况,那么是的,它更有可能。 MD5 是no longer considered cryptographically secure。
【讨论】:
md5 校验和的想法是原始文件上的每一位都保持不变。尽管该算法可能存在冲突,但 md5 保持不变的可能性不大。所以你应该更新 md5 文件以及检查它的工具或完全删除它,这样检查它的工具就会失败。
如果您更新原始版本并保留旧的 md5,那么您将禁止关心校验和的工具。
【讨论】: