SHA-2在各种平台上的支持状态如何?

时间:2010-03-08 23:13:08

标签: security hash sha2

I read that SHA-1 is being retired from the FIPS 180-2 standard.

显然,SHA-1的弱点导致了这一决定。谁能详细说明这个决定的基础?在商业应用中使用SHA-1会有什么影响吗?

我真正的问题是:

  • 各种类库和平台中SHA-2支持的状态是什么?
  • 我应该尝试转移到SHA-2 吗?

对主流平台感兴趣:.NET,Java,C / C ++,Python,Javascript等。

3 个答案:

答案 0 :(得分:5)

Sha1,Sha0,md4和md5在过去几年中都被认为是不安全的。问题是如果攻击者可以生成2个产生相同结果哈希的不同消息,则称为冲突。这会给PKI,密码管理,文件完整性检查等带来很多问题。目前sha1仅提供2 ^ 52位的安全性,这是攻击者可以接触到的。其中SHA-256(sha2系列的最小成员)提供2 ^ 256位。

所有平台都应该有SHA-256实现,但并非所有平台都是本机的。在PHP中,您必须使用mhash扩展。令人费解的是,有些平台没有提供安全散列函数,老实说我相信它是因为它们不关心secuirty。在PHP的情况下,我知道they don't care about secuirty的事实。

目前SHA-2没有任何问题,它具有非常大的安全范围。如果你真的偏执,你可以使用SHA-512。 Sha-3将在2012年推出,你应该像你的 PASSWORDS 一样用sha-2补丁,然后在你可以的时候转移到SHA-3,但SHA-512对于非常好很久。

答案 1 :(得分:4)

Windows Vista及更高版本支持Microsoft增强型RSA中的SHA-2和CryptoAPI的AES加密提供程序,.NET Framework自.NET 1.1以来一直支持SHA-2。

答案 2 :(得分:1)

现在大多数平台都支持SHA-2系列。但是,SHA-1仍然在许多应用程序中使用,例如SSL,并且将在一段时间内使用。

“SHA-3”比赛正在进行中。当它到达时从SHA-1跳转到新的SHA-3标准可能是合理的。