Dan*_* S. 15
要1):是的,在大多数CPU上,SHA-256的速度仅为MD5的40%.
2):在这种情况下,我会争论与MD5不同的算法.我肯定更喜欢一种被认为安全的算法.但是,这更像是一种感觉.其中,该事项将是相当构建不是现实的,例如,如果你的备份系统遇到在基于MD5证书的攻击的例子情况下的情况下,你很可能有不同的数据,但相同的MD5校验码这样的例子两个文件.对于其他情况,这没关系,因为MD5校验和实际上只有在故意激发时才会发生冲突(=不同数据的校验和相同).我不是各种散列(校验和生成)算法的专家,所以我不能建议另一种算法.因此,这部分问题仍然存在.建议进一步阅读的是加密哈希函数 -维基百科上的文件或数据标识符.此外,该页面还有一个加密哈希算法列表.
3):MD5是一种计算校验和的算法.然后使用该算法计算的校验和称为MD5校验和.
Mar*_*ent 11
每个答案似乎都表明您需要使用安全哈希来完成这项工作,但所有这些都被调整得很慢,迫使暴力攻击者拥有大量的计算能力,并且根据您的需要,这可能不是最佳解决方案.
有一些算法专门用于尽可能快地散列文件,以检查完整性和比较(murmur,XXhash...).显然,这些不是为安全性而设计的,因为它们不满足安全散列算法(即随机性)的要求,但对于大消息具有低冲突率.如果您不是在寻找安全性而是速度,这个功能使它们成为理想选择.
这个算法和比较的例子可以在这个优秀的答案中找到:哪种哈希算法最适合于唯一性和速度?.
例如,我们在问答网站上使用murmur3哈希用户上传的图像,因此即使用户在多个答案中上传相同图像,我们也只会存储一次.
总而言之,我会说MD5除了文件名之外绝对安全.由于它的大小,SHA-256会变得更慢,更难处理.
您也可以使用比MD5更安全的东西而没有任何问题.如果没有人试图破解你的文件完整性,这也是安全的.
基础MD5算法不再被认为是安全的,因此md5sum非常适合在非安全相关的情况下识别已知文件,如果文件有可能被故意和恶意篡改,则不应该依赖它.在后一种情况下,强烈建议使用更新的散列工具,如sha256sum.
因此,如果您只是想检查文件损坏或文件差异,那么当文件的来源可信时,MD5就足够了.如果您希望验证来自不受信任来源的文件的完整性,或通过未加密的连接验证来自受信任来源的文件的完整性,则MD5是不够的.
另一位评论者指出,Ubuntu和其他人使用MD5校验和.除了MD5之外,Ubuntu已经转移到PGP和SHA256,但是更难以找到更强大的验证策略的文档.有关更多详细信息,请参见HowToSHA256SUM页面.
哈希快乐!
从技术上讲,MD5比SHA256更快,因此仅在验证文件完整性时,它就会足够且性能更好。
您可以签出以下资源: