Answers:
MD5哈希对于大多数琐碎任务来说“足够好”。回想一下,在相同数量的字节中产生有意义的冲突仍然非常困难。
例如,假设您下周从受信任的镜像下载新的Ubuntu 9.10。您要验证文件是否已正确完整下载。只需启动MD5并哈希ISO。将散列与已发布的散列进行比较。如果哈希值匹配,则可以确保正确,完整地复制了ISO。
盐腌可以提高安全性。
MD5由于其速度快且冲突率极低而被广泛用作校验和哈希函数。MD5校验和由32个十六进制数字组成,它们在一起提供的碰撞几率约为3.42e34。从理论上讲,您可以对一个美国大小的国家/地区中的所有计算机中的所有文件进行哈希处理,而不会产生冲突(*)。
对于加密而言,如果只考虑安全性,则MD5是有效的替代方法。对于散列数据库密码或其他大多数需要内部安全性以提高其速度的字段,这是一个非常可行的选择,而且还因为MD5确实提供了合理级别的安全性,而无需考虑使用强加密。
(*)对于大多数校验和而言,冲突只有在起源相似且大小相同的两个对象之间发生时才有意义。尽管MD5具有很高的唯一性概率,但冲突最终可能会在两个非常不同的文件之间发生。假设有一个1.5Mb的数据库文件和一个35k的gif文件。对于大多数目的,这是毫无意义的冲突。更重要的是,因为MD5只是文件索引编制的元素之一。文件大小是另一个重要的因素。
MD5已被广泛使用,因为它已被广泛使用,而且中断还不够明显,不足以成为现有系统中的明显问题。
sha256sum filename.iso
而不是md5sum filename.iso
呢?