我知道,SHA-256优于MD5的安全性等,但是,如果我用一种方法来只检查文件的完整性(即,无关的密码加密等),是否有任何优势使用SHA-256?
由于MD5是128位和SHA-256是256位(因此两倍大)...
难道需要多达两倍的时间来进行加密?
当时间是不是本质,就像在一个备份程序和文件的完整性是所有需要,会有人反对MD5用于不同的算法,甚至提出不同的技术?
是否使用MD5产生校验?
我知道,SHA-256优于MD5的安全性等,但是,如果我用一种方法来只检查文件的完整性(即,无关的密码加密等),是否有任何优势使用SHA-256?
由于MD5是128位和SHA-256是256位(因此两倍大)...
难道需要多达两倍的时间来进行加密?
当时间是不是本质,就像在一个备份程序和文件的完整性是所有需要,会有人反对MD5用于不同的算法,甚至提出不同的技术?
是否使用MD5产生校验?
无论SHA256和MDA5的散列算法。 他们把你的输入数据,在这种情况下您的文件,输出256/128 bit的数字。 这个数字是一个校验和。 有没有加密的发生是因为输入的无限数量的可能会导致相同的哈希值,但在现实的碰撞是罕见的。
SHA256有些需要更多的时间来计算比MD5,根据这个答案 。
随口说说,我想说的是MD5将可能是适合你的需要。
1):是的,在大多数的CPU,SHA-256是大约只有40%左右的速度为MD5。
至2):我认为在这样的情况下的不同的算法比MD5。 我肯定宁愿被认为是安全的算法。 然而,这更多的是一种感觉。 其中,该事项将是相当构建不是现实的,例如,如果你的备份系统遇到在基于MD5证书的攻击的例子情况下的情况下,你很可能有不同的数据,但相同的MD5校验码这样的例子两个文件。 对于其余情形下,也不要紧,因为MD5校验码有一个碰撞(=为不同的数据相同的校验)几乎只在故意挑衅。 我不是在各种散列(校验生成)算法的专家,所以我不能建议另一种算法。 因此,这部分的质询仍然是开放的。 建议进一步阅读的加密散列函数-文件或数据标识符维基百科。 还进一步那一页上存在的加密哈希算法的列表。
至3):MD5是一个算法来计算校验和。 然后使用该算法计算出的校验和被称为MD5校验和。
每一个答案,似乎表明,你需要使用安全散列来完成这项工作,但所有的这些调整是缓慢的强制暴力破解攻击者有大量的计算能力,并根据您的需求,这可能不是最佳的解决方案。
有专为尽可能快地散列文件是否完整和比较(算法murmur
, XXhash
...)。 显然,这些都是不适合的安全,因为它们不符合安全散列算法(即随机性)的要求,但对于大的消息低碰撞率。 这种特性使其成为理想的,如果你是不是在找安全,但速度。
:这个算法和比较的例子可以在这个优秀的答案被发现的哈希算法是最好的独特性和速度? 。
作为一个例子,我们在我们的Q&A网站使用murmur3
散列由用户上传的,所以我们只能将它们存储一旦图像即使用户几个答案上传相同的图像。
所有的一切,我会说,MD5,除了文件名是绝对安全的。 SHA-256也只是比较慢,更难处理,因为它的大小。
你也可以使用比MD5不太安全的事,没有任何问题。 如果没有人试图破解您的文件的完整性,这是安全的,太。
底层MD5算法不再被认为是安全的,因此,当是的md5sum非常适合用于识别不属于安全相关的情况下,已知文件,它不应该,如果有机会的文件已经有意和恶意篡改依赖。 在后者的情况下,强烈建议使用一个较新的散列工具如sha256sum。
所以,如果你只是希望检查文件损坏或文件的差异,当文件的来源可靠,MD5应该是足够的。 如果您正在寻找进行验证,或通过从通过未加密的连接可信来源来自不受信任的源来一个文件的完整性,MD5是不够的。
另一位评论者指出,Ubuntu和其他人使用MD5校验码。 Ubuntu已经搬到了PGP和SHA256,除了MD5,但强验证策略的文件都比较难找到。 见HowToSHA256SUM页了解更多详情。
这在技术上是批准了MD5比SHA256快因此在短短验证文件的完整性将是足够的,并获得更好的性能。
您可以签出以下资源:
快乐散列!