1

我在 2015 年 10 月 1 日读到 Facebook 将从 SHA-1 迁移到 SHA-2,我们必须更新我们的应用程序:https ://developers.facebook.com/blog/post/2015/06/02/SHA-2 -需要更新/

你知道它会使用 SHA-2 的哪个函数吗?

我读到有几个(224、256、384 或 512),其中一个(SHA-224)不适用于我使用的 Windows XP SP3(http://blogs.msdn.com/b/alejacma/存档/2009/01/23/sha-2-support-on-windows-xp.aspx

4

1 回答 1

0

您不必太在意,因为 SHA-224 的使用非常有限。

在这个问题中, CBroe指出了一个重要的评论:

该博客文章是关于当您的应用发出 API 请求时的 SSL 连接。这与您对应用程序中的数据所做的任何事情无关,它与传输层有关。

根据https://crypto.stackexchange.com/questions/15151/sha-224-purpose

回答者Ilmari Karonen

老实说,在实践中,使用 SHA-224 的理由很少(如果有的话)。

正如 fgrieu 所指出的,SHA-224 只是 SHA-256,具有不同的 IV 并丢弃了 32 个输出位。对于大多数目的,如果您想要一个多于 128 位但少于 256 位的散列,则只需使用 SHA-256 并将输出自己截断为所需的位长度,这与使用 SHA-224 一样简单且高效。正如您所观察到的,与 SHA-224 相比,SHA-256 也更有可能在不同的平台上可用,使其成为更好的可移植性选择。

那么,您为什么要使用 SHA-224?

一个明显的用例是,如果您需要实现一个指定使用 SHA-224 哈希的现有协议。虽然由于上述原因,这不是一个非常常见的选择,但我确信这样的协议确实存在。

此外,与截断的 SHA-256 相比,SHA-224 的一个次要优势是,由于 IV 不同,知道给定消息的 SHA-224 哈希并不能揭示有关其 SHA-256 哈希的任何有用信息,反之亦然。这实际上更像是一种“防白痴”功能。由于这两个哈希具有不同的名称,粗心的用户可能会认为他们的输出没有共同点,因此 NIST 更改了 IV 以确保确实如此。

但是,这并不是您通常应该依赖的东西。如果您确实需要计算同一输入字符串的多个不相关的哈希值,您可能想要的是一个像 HMAC 这样的键控 PRF,它可以使用任何常见的哈希函数(例如 SHA-256)来实例化。

正如您所提到的,带有 SP3 的 Windows XP 不支持 SHA-224 但它支持SHA-256在此处输入图像描述

还要检查:https ://security.stackexchange.com/questions/1751/what-are-the-realistic-and-most-secure-crypto-for-symmetric-asymmetric-hash

特别是:https ://stackoverflow.com/a/817121/3964066

并且:https ://security.stackexchange.com/a/1755

Thomas Pornin 的部分回答:

256 位曲线上的 ECDSA 已经实现了“牢不可破”的安全级别(即,与使用 128 位密钥的 AES 或针对冲突的 SHA-256 大致相同的级别)。注意素数域有椭圆曲线,二元域有曲线;哪种最有效取决于所涉及的硬件(对于类似大小的曲线,PC 会更喜欢素数字段上的曲线,但使用二进制字段更容易构建专用硬件;较新的 Intel 和 AMD 处理器上的 CLMUL 指令可能会改变)。

SHA-512 使用 64 位操作。这在 PC 上很快,而在智能卡上则不那么快。SHA-256 通常更适合小型硬件(包括家庭路由器或智能手机等 32 位架构)

于 2015-08-24T15:03:30.727 回答