SHA1仍然可以安全地用作PBKDF2中的哈希函数吗?

Chr*_*ger 10 hash cryptography sha1 pbkdf2

由于SHA1的加密分析取得了重大进展,因此应该逐步取消SHA2(维基百科).

然而,为了在PBKDF2中用作底层散列函数,它基本上用作PRNG.因此,使用SHA1作为PBKDF2的哈希值仍然是安全的,对吧?

Tho*_*nin 20

在HMAC,使用时对SHA-1目前已知的弱点没有在它的安全性产生任何影响更不用说在PBKDF2使用时.就此而言,MD5也可以(但不是MD4).

但是,SHA-1对公共关系不利:如果在2011年使用SHA-1,那么你必须做好准备以证明自己的选择是正确的.另一方面,SHA-256是一个很好的"默认功能",没有人会质疑它.

PBKDF2中没有性能问题(PBKDF2包含一个"迭代计数"意味着它完全与所需的一样慢)所以在这里没有理由比SHA-256更喜欢SHA-1.但是,如果您有一个使用PBKDF2-with-SHA-1 的现有已部署系统,则不需要立即"修复"它.

  • [Stack Crypto](http://crypto.stackexchange.com/questions/15218/is-pbkdf2-hmac-sha1-really-broken) 中也有一个很好的解释。简而言之,密码冲突并不是一件坏事,它只是意味着恶意用户(或有效用户)可以使用几个不同的密码登录,而不是他们可以恢复到原始的“真实”密码。 (2认同)