我看到Facebook在2015年10月1日将从SHA-1转移到SHA-2,我们必须更新我们的应用程序:https://developers.facebook.com/blog/post/2015/06/02/SHA-2-Updates-Needed/。
你知道它会使用哪种SHA-2的功能吗?
我读到有几个(224,256,384或512),其中一个(SHA-224)不适用于我使用的Windows SP3 (http://blogs.msdn.com/b/alejacma/archive/2009/01/23/sha-2-support-on-windows-xp.aspx)
发布于 2015-08-24 15:03:30
您不必那么在意,因为SHA-224的使用是非常有限的。
那篇博文是关于应用程序发出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)实例化。
正如您所提到的,Windows与SP3不支持SHA-224,但它支持沙-256:

特别是:https://stackoverflow.com/a/817121/3964066
和:https://security.stackexchange.com/a/1755
托马斯·波宁的部分回答是:
在256位曲线上的ECDSA已经达到了“不可打破”的安全级别(即与使用128位密钥的AES大致相同的级别,或SHA-256防止碰撞)。注意,素数域上有椭圆曲线,二进制域上有曲线;哪种曲线最有效取决于所涉及的硬件(对于类似大小的曲线,PC将更喜欢素数域上的曲线,但专用硬件将更容易用二进制字段构建;更新的Intel和AMD处理器上的CLMUL指令可能会改变这种情况)。 沙512使用64位运算.这在个人电脑上是快速的,在智能卡上则不是那么快。在小型硬件(包括32位架构,如家庭路由器或智能手机)上,沙256往往是一个更好的选择。
https://stackoverflow.com/questions/32184917
复制相似问题