为什么仍然大量使用MD5?


Answers:


16

它的生成速度很快,而且通常在理论上可能发生碰撞并不是一个大问题。即检查缓存文件是否已更改,以避免下载新副本。

1996年完成快速基准测试显示:

            Digest Performance in MegaBytes per Second

      Pentium P5     Power Mac    SPARC 4     DEC Alpha
          90 MHz        80 MHz      110 MHz      200 MHz

MD5         13.1          3.1         5.1          8.5
SHA1         2.5          1.2         2.0          3.3

对于现代用途-在嵌入式芯片上,相同信息的MD5的生产速度比SHA1快2-3倍。


10

MD5哈希对于大多数琐碎任务来说“足够好”。回想一下,在相同数量的字节中产生有意义的冲突仍然非常困难。

例如,假设您下周从受信任的镜像下载新的Ubuntu 9.10。您要验证文件是否已正确完整下载。只需启动MD5并哈希ISO。将散列与已发布的散列进行比较。如果哈希值匹配,则可以确保正确,完整地复制了ISO。


不再困难了。而如何运行sha256sum filename.iso而不是md5sum filename.iso呢?
机械蜗牛

此外,如果你的ISP是邪恶的,MD5确实保证ISO正确下载。ISP可能篡改ISO映像以作恶。
机械蜗牛


3

MD5由于其速度快且冲突率极低而被广泛用作校验和哈希函数。MD5校验和由32个十六进制数字组成,它们在一起提供的碰撞几率约为3.42e34。从理论上讲,您可以对一个美国大小的国家/地区中的所有计算机中的所有文件进行哈希处理,而不会产生冲突(*)。

对于加密而言,如果只考虑安全性,则MD5是有效的替代方法。对于散列数据库密码或其他大多数需要内部安全性以提高其速度的字段,这是一个非常可行的选择,而且还因为MD5确实提供了合理级别的安全性,而无需考虑使用强加密。


(*)对于大多数校验和而言,冲突只有在起源相似且大小相同的两个对象之间发生时才有意义。尽管MD5具有很高的唯一性概率,但冲突最终可能会在两个非常不同的文件之间发生。假设有一个1.5Mb的数据库文件和一个35k的gif文件。对于大多数目的,这是毫无意义的冲突。更重要的是,因为MD5只是文件索引编制的元素之一。文件大小是另一个重要的因素。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.