当使用md5sum
来验证文件的完整性,准确度如何处理?
经过验证的MD5是否意味着每个位都完全相同,还是在MD5中反映二进制更改之前必须打破某个阈值?
任何有关如何生成md5的文档也将不胜感激。
当使用md5sum
来验证文件的完整性,准确度如何处理?
经过验证的MD5是否意味着每个位都完全相同,还是在MD5中反映二进制更改之前必须打破某个阈值?
任何有关如何生成md5的文档也将不胜感激。
Answers:
为此,MD5遭到了智能对手的攻击。可能会恶意地构造两个产生相同MD5哈希值的不同数据块。
但是,使用MD5来防止传输或存储中的意外数据损坏是完全合适的(尽管几乎肯定有更好的方法)。尽管可以想象这样的事件可能导致MD5哈希相同,但是该概率是如此之低,以至于几乎是无法想象的值得担心的概率。由背景辐射,隧道效应,静态效应和许多其他来源引起的故障可能性更大。
即使您拥有四千万分之一的数据单位,不匹配的MD5产生属于这些四分之一单位之一的MD5哈希的概率也要比四分之一中的概率小得多。
MD5是哈希。它基本上将文件的整个内容映射为一个16字节长的IIRC小字符串。
显然会有多个文件散列到相同的MD5总和。因此,匹配的MD5总和不能保证文件之间的完全匹配。
这样就没有阈值,因为哈希的工作方式。因此,MD5和甚至可以检测到单个位的变化。但是,许多单个位更改在一起可能会导致MD5哈希相同。因此,使用MD5来验证文件完整性以防止随机破坏是非常合理的,但是如果可能存在恶意,则不可能,因为有人可以在确保MD5哈希相同的同时修改文件。
MD5-Hash由128位组成。源中的单个翻转位(平均)翻转哈希中的64位。
两个哈希偶然碰撞的概率为1/2 ^ 128,这是340非十进制中的282非十进制366非十进制920八十亿938 9月463六十亿463五十亿374四十亿万千607万亿431万亿768亿211000 456。
但是,如果保留所有哈希值,则由于生日的矛盾,概率更高。要使任何哈希冲突的可能性达到50%,您需要2 ^ 64个哈希。这意味着,要平均产生碰撞,您需要在100年内每秒散列60亿个文件。
资料来源:porneL,https ://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions