当使用md5sum
来验证文件的完整性,准确度如何处理?
经过验证的 MD5 是否意味着每个位都完全相同,还是在 MD5 中反映二进制更改之前必须打破阈值?
任何有关如何生成 md5 的文档也将不胜感激。
Dav*_*rtz 65
为此目的,MD5 已被破解,以对抗智能对手。有可能恶意构建产生相同 MD5 哈希值的两个不同数据块。
但是,它完全适合(尽管几乎肯定有更好的方法)使用 MD5 来防止在传输或存储过程中意外损坏数据。虽然可以想象这样的事件可能会导致 MD5 哈希相同,但概率如此之低,以至于几乎无法想象这是一个值得担心的概率。由背景辐射、隧道效应、静电和许多其他来源引起的故障的可能性要大几个数量级。
即使您拥有千万亿个单位的数据,不匹配的 MD5 产生属于这些千万亿单位之一的 MD5 哈希值的概率也远小于千万分之一。
Ita*_*tai 26
MD5 是一个哈希值。它基本上将文件的全部内容映射到一个 16 字节长的 IIRC 小字符串中。
显然会有多个文件散列到相同的 MD5 总和。因此,匹配的 MD5 总和不能保证文件之间完全匹配。
由于散列的工作方式,因此没有阈值。因此,MD5 和甚至可以检测到单个位的变化。但是,大量的单个位更改可能会导致 MD5 哈希相同。因此,使用 MD5 来验证文件完整性以防止随机损坏是非常合理的,但如果可能存在恶意意图,则不会因为有人可以在确保 MD5 哈希相同的同时修改文件。
小智 17
一个 MD5-Hash 由 128 位组成。源中的单个翻转位(平均)翻转散列中的 64 位。
两个散列意外碰撞的概率为 1/2^128,即 340 亿分之一 282 十亿 366 非亿 920 octillion 938 septillion 463 六亿 463 quintillion 374 万亿 615716334000000000000000000000000000000000000000000
但是,如果您保留所有哈希值,那么由于生日悖论,概率会更高一些。要使任何散列冲突有 50% 的机会,您需要 2^64 个散列。这意味着要发生冲突,平均需要在 100 年内每秒散列 60 亿个文件。
来源:porneL,https ://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
归档时间: |
|
查看次数: |
5572 次 |
最近记录: |