File SHA-256或MD5用于文件完整性
我知道在安全性等方面,SHA-256比MD5更受欢迎,但是,如果我要使用一种只检查文件完整性的方法(即,与密码加密等无关),那么使用SHA-256有什么好处吗 由于MD5是128位,而SHA-256是256位(因此是原来的两倍)File SHA-256或MD5用于文件完整性,file,hash,md5,sha256,File,Hash,Md5,Sha256,我知道在安全性等方面,SHA-256比MD5更受欢迎,但是,如果我要使用一种只检查文件完整性的方法(即,与密码加密等无关),那么使用SHA-256有什么好处吗 由于MD5是128位,而SHA-256是256位(因此是原来的两倍) 加密需要两倍的时间吗 如果时间不重要,比如在备份程序中,文件完整性是所有需要的,那么有人会反对MD5使用不同的算法,或者甚至建议使用不同的技术吗 使用MD5是否会产生校验和 至(1): 是的,在大多数CPU上,SHA-256的速度只有MD5的40%左右 至(2): 在这
MD5是一种计算校验和的算法。使用此算法计算的校验和称为MD5校验和。SHA256和MDA5都是散列算法。它们获取您的输入数据(本例中为您的文件),并输出256/128位的数字。这个数字是校验和。由于无限多的输入可能会导致相同的哈希值,因此不会发生加密,尽管实际上冲突很少 据统计,SHA256的计算时间比MD5稍长一些 顺便说一下,我认为MD5可能适合您的需要
您也可以使用比MD5更不安全的东西,而不会出现任何问题。如果没有人试图攻击您的文件完整性,这也是安全的。技术上认可MD5比SHA256更快,因此仅验证文件完整性就足以提高性能 您可以签出以下资源:
另一位评论者指出,Ubuntu和其他人使用MD5校验和。除了MD5之外,Ubuntu已经转向PGP和SHA256,但是更强大的验证策略的文档更难找到。有关更多详细信息,请参阅。每个答案似乎都建议您需要使用安全哈希来完成这项工作,但所有这些都被调整为缓慢,以迫使暴力攻击者拥有大量计算能力,根据您的需要,这可能不是最佳解决方案 有专门设计的算法可以尽可能快地散列文件,以检查完整性和比较(
杂音
,XXhash
…)。显然,它们不是为安全而设计的,因为它们不满足安全哈希算法(即随机性)的要求,但对于大型消息,冲突率较低。如果您不追求安全性,而是追求速度,那么这些功能将使它们成为理想的选择
此算法和比较的示例可以在以下优秀答案中找到:
例如,我们在问答网站上使用murruld3
对用户上传的图像进行散列,因此即使用户在多个答案中上传同一图像,我们也只存储一次
- 备份程序对要备份的每个文件进行哈希运算。然后存储 每个文件的数据都按其哈希值排序,因此如果备份同一个文件 两次你只得到一份
- 攻击者可以使系统备份他们控制的文件
- 攻击者知道要从数据库中删除的文件的MD5哈希 备份
- 然后,攻击者可以利用MD5的已知弱点设计新的 与要删除的文件具有相同哈希的文件。当该文件 备份后,它将替换要删除的文件,并且该文件已备份 数据将丢失
- 这个备份系统可以加强一点(并提高效率) 通过不替换它以前遇到过的散列的文件,但是 然后,攻击者可以阻止具有已知散列的目标文件被删除 通过先发制人地备份一个特殊构造的伪造文件进行备份 具有相同哈希的文件
- 显然,大多数系统(备份系统和其他系统)都不支持sa