I read that SHA-1 is being retired from the FIPS 180-2 standard.
显然,SHA-1的弱点导致了这一决定。谁能详细说明这个决定的基础?在商业应用中使用SHA-1会有什么影响吗?
我真正的问题是:
对主流平台感兴趣:.NET,Java,C / C ++,Python,Javascript等。
答案 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标准可能是合理的。