MD5 似乎有有据可查的漏洞但它的使用范围仍然很广。当其他替代方案(例如 SHA-2)似乎更强大时,是否有人能给出它仍然可行的理由?
答案1
它生成速度很快,并且通常理论上可能发生冲突的事实并不是一个大问题。例如,检查缓存文件是否已更改以避免下载新副本。
A1996 年完成的快速基准测试显示以下内容:
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 倍。
答案2
MD5 哈希对于大多数琐碎任务来说已经“足够好了”。回想一下,在相同数量的字节中产生有意义的碰撞仍然非常困难。
例如,假设您下周从受信任的镜像下载新的 Ubuntu 9.10。您想验证文件是否已正确完整地下载。只需启动 MD5 并对 ISO 进行哈希处理。将哈希与已发布的哈希进行比较。如果哈希匹配,则可以确定 ISO 已正确完整地复制。
答案3
- 它很简短——更容易阅读。
- 普及性——与其他系统具有很好的互操作性
- 这是很正常的——每个人都已经习惯了。
并且通过加盐可以提高安全性。
答案4
MD5 之所以被广泛使用,是因为它已经被广泛使用,而且其破解还不够严重,不足以在现有系统中成为一个明显的问题。