SHA-256或MD5文件完整性(SHA-256 or MD5 for file integrity

2019-07-17 19:28发布

我知道,SHA-256优于MD5的安全性等,但是,如果我用一种方法来只检查文件的完整性(即,无关的密码加密等),是否有任何优势使用SHA-256?

由于MD5是128位和SHA-256是256位(因此两倍大)...

  1. 难道需要多达两倍的时间来进行加密?

  2. 当时间是不是本质,就像在一个备份程序和文件的完整性是所有需要,会有人反对MD5用于不同的算法,甚至提出不同的技术?

  3. 是否使用MD5产生校验?

Answer 1:

无论SHA256和MDA5的散列算法。 他们把你的输入数据,在这种情况下您的文件,输出256/128 bit的数字。 这个数字是一个校验和。 有没有加密的发生是因为输入的无限数量的可能会导致相同的哈希值,但在现实的碰撞是罕见的。

SHA256有些需要更多的时间来计算比MD5,根据这个答案 。

随口说说,我想说的是MD5将可能是适合你的需要。



Answer 2:

1):是的,在大多数的CPU,SHA-256是大约只有40%左右的速度为MD5。

至2):我认为在这样的情况下的不同的算法比MD5。 我肯定宁愿被认为是安全的算法。 然而,这更多的是一种感觉。 其中,该事项将是相当构建不是现实的,例如,如果你的备份系统遇到在基于MD5证书的攻击的例子情况下的情况下,你很可能有不同的数据,但相同的MD5校验码这样的例子两个文件。 对于其余情形下,也不要紧,因为MD5校验码有一个碰撞(=为不同的数据相同的校验)几乎只在故意挑衅。 我不是在各种散列(校验生成)算法的专家,所以我不能建议另一种算法。 因此,这部分的质询仍然是开放的。 建议进一步阅读的加密散列函数-文件或数据标识符维基百科。 还进一步那一页上存在的加密哈希算法的列表。

至3):MD5是一个算法来计算校验和。 然后使用该算法计算出的校验和被称为MD5校验和。



Answer 3:

每一个答案,似乎表明,你需要使用安全散列来完成这项工作,但所有的这些调整是缓慢的强制暴力破解攻击者有大量的计算能力,并根据您的需求,这可能不是最佳的解决方案。

有专为尽可能快地散列文件是否完整和比较(算法murmurXXhash ...)。 显然,这些都是不适合的安全,因为它们不符合安全散列算法(即随机性)的要求,但对于大的消息低碰撞率。 这种特性使其成为理想的,如果你是不是在找安全,但速度。

:这个算法和比较的例子可以在这个优秀的答案被发现的哈希算法是最好的独特性和速度? 。

作为一个例子,我们在我们的Q&A网站使用murmur3散列由用户上传的,所以我们只能将它们存储一旦图像即使用户几个答案上传相同的图像。



Answer 4:

  1. 不,这是不快,但也不慢
  2. 对于备份程序很可能需要有一些甚至比MD5快

所有的一切,我会说,MD5,除了文件名是绝对安全的。 SHA-256也只是比较慢,更难处理,因为它的大小。

你也可以使用比MD5不太安全的事,没有任何问题。 如果没有人试图破解您的文件的完整性,这是安全的,太。



Answer 5:

底层MD5算法不再被认为是安全的,因此,当是的md5sum非常适合用于识别不属于安全相关的情况下,已知文件,它不应该,如果有机会的文件已经有意和恶意篡改依赖。 在后者的情况下,强烈建议使用一个较新的散列工具如sha256sum。

所以,如果你只是希望检查文件损坏或文件的差异,当文件的来源可靠,MD5应该是足够的。 如果您正在寻找进行验证,或通过从通过未加密的连接可信来源来自不受信任的源来一个文件的完整性,MD5是不够的。

另一位评论者指出,Ubuntu和其他人使用MD5校验码。 Ubuntu已经搬到了PGP和SHA256,除了MD5,但强验证策略的文件都比较难找到。 见HowToSHA256SUM页了解更多详情。



Answer 6:

这在技术上是批准了MD5比SHA256快因此在短短验证文件的完整性将是足够的,并获得更好的性能。

您可以签出以下资源:

  • 流行加密算法的速度比较
  • 的加密散列函数的比较


Answer 7:

  1. 是的,在大多数的CPU,SHA-256是两到三倍比MD5慢,但主要不是它的长哈希的原因。 看到这里其他的答案和解答这个堆栈溢出问题 。
  2. 在此处,MD5是不恰当的备份方案:
    • 你的备份程序哈希正在备份的每个文件。 然后,它通过其散列存储每个文件的数据,因此,如果要备份相同的文件两次,你只能用它的一个副本结束。
    • 攻击者可以导致系统所控制的备份文件。
    • 攻击者知道他们想从备份中删除文件的MD5哈希值。
    • 然后,攻击者可以使用MD5的已知弱点手艺具有相同的哈希值作为要删除的文件的新文件。 当该文件备份,将取代要删除的文件,而该文件的备份数据都将丢失。
    • 该备份系统可以加强一点(和更有效率)通过不替换文件,文件的哈希它以前遇到过,但随后攻击者可以防止与已知的散列的目标文件被备份通过先备份一个专门建造的假用相同的哈希文件。
    • 显然最系统,备份,否则,不能满足需要的这种攻击是可行的条件,但我只是想给的情况SHA-256将是优选的MD5的例子。 这是否将是你所创建的系统的情况下取决于不仅仅是MD5和SHA-256的特点。
  3. 是的,像通过MD5和SHA-256产生的那些密码散列是一种校验和。

快乐散列!



文章来源: SHA-256 or MD5 for file integrity