Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash 为什么选择SHA512而不是SHA384?_Hash_Digest_Integrity_Sha512_Sha2 - Fatal编程技术网

Hash 为什么选择SHA512而不是SHA384?

Hash 为什么选择SHA512而不是SHA384?,hash,digest,integrity,sha512,sha2,Hash,Digest,Integrity,Sha512,Sha2,SHA384是SHA512的截断版本。但为什么会有人使用它呢?推论:如果SHA384和SHA512一样好,那么使用512位版本有什么理由吗 我计划使用其中一种算法来验证文件完整性,所以我主要对colision安全性感兴趣 我很高兴听到有人在实践中如何使用SHA2摘要,以及您为什么选择一个版本而不是另一个版本。出于实际目的和可预见的未来,SHA384和SH512对于几乎任何可以想象的抗碰撞应用来说都足够好。一般来说,一旦我们达到256位以上,并且出于实际目的,抗冲突性是无限的,那么您将使用什么哈希

SHA384是SHA512的截断版本。但为什么会有人使用它呢?推论:如果SHA384和SHA512一样好,那么使用512位版本有什么理由吗

我计划使用其中一种算法来验证文件完整性,所以我主要对colision安全性感兴趣


我很高兴听到有人在实践中如何使用SHA2摘要,以及您为什么选择一个版本而不是另一个版本。

出于实际目的和可预见的未来,SHA384和SH512对于几乎任何可以想象的抗碰撞应用来说都足够好。一般来说,一旦我们达到256位以上,并且出于实际目的,抗冲突性是无限的,那么您将使用什么哈希的主要决定因素就是您需要多少位输出。例如,如果您需要哈希来生成256位HMAC密钥和128位加密密钥,那么自然会选择SHA384。如果您需要尽可能多的输出以获得计算成本,例如PRNG的输出或随机填充,那么SHA512是有意义的。

SHA512同时SHA256 SHA1和MD5也容易受到攻击
由于SHA224和SHA384的输出降低到内部状态,因此SHA3也不易受攻击。记住SHA512是一个很好的加密抗冲突散列函数。

使用SHA512签名的证书在Windows()上与TLS 1.2不兼容

因此,我将使用SHA-384(或者我想我可以使用SHA-256)重新创建我的证书链

谢天谢地,我还没有发布任何证书,链接页面中的线程确实为那些使用SHA-512的用户提出了一个解决方案/修复方案


SHA512易受攻击,而SHA384不易受攻击

我能想到使用SHA-384和SHA-512的唯一原因是因为需要签名。例如,如果采用ECDSA-384签名,则需要384哈希摘要,而不是512位。理想情况下,您可以从512位中抛出任意128位。但接收端需要知道您抛出了哪一个128位。所以SHA384和SH512之间的唯一区别是定义需要抛出的128位。

SH224是SH256的截断版本。Wikipedia将SHA224列为“匹配两个密钥三重DES的密钥长度”。我找不到SHA384的语句,尽管我怀疑类似的东西。SHA512也容易受到长度扩展攻击。从SHA-2来看,只有SHA224和SHA834不是。“SHA512对长度扩展攻击是脆弱的,而SHA384不是。[来源]”这是不公平的评论。此漏洞是由于不正确使用SHA2造成的。如果您想使用SHA2实现MAC功能,只需遵循HMAC标准即可。如果您遵循HMAC,则所有SHA2算法、SHA2-224、256、384和512都可以。