cryptography - SHA1 在 PBKDF2 中用作散列函数是否仍然安全?

标签 cryptography hash sha1 pbkdf2

由于 SHA1 的密码分析取得了重大进展,因此应该逐步淘汰它以支持 SHA2 (wikipedia)。

然而,作为 PBKDF2 中的底层哈希函数,它基本上用作 PRNG。因此,使用 SHA1 作为 PBKDF2 的哈希应该仍然是安全的,对吧?

最佳答案

当前已知的 SHA-1 弱点在 HMAC 中使用时都不会对其安全性产生任何影响,在 PBKDF2 中使用时更是如此。就此而言,MD5 也可以(但不是 MD4)。

但是,SHA-1 对公共(public)关系不利:如果在 2011 年使用 SHA-1,那么您必须准备好为自己的选择辩护。另一方面,SHA-256 是一个很好的“默认函数”,没有人会质疑它。

PBKDF2 中没有性能问题(PBKDF2 包含一个“迭代计数”,旨在使其完全符合需要的速度),因此在这里没有理由更喜欢 SHA-1 而不是 SHA-256。但是,如果您有一个使用 PBKDF2-with-SHA-1 的现有已部署系统,则无需立即“修复”它。

关于cryptography - SHA1 在 PBKDF2 中用作散列函数是否仍然安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938906/

相关文章:

c# - 如何在 PHP 中复制此 C# 哈希? (toByteArray(), ComputeHash())

cryptography - Code Golf : Diffie-Hellman key exchange

delphi - 无法获得 Spring4D 加密示例的预期结果

java - 在 Node 上生成 AES key

encryption - 从 MD5 哈希函数的特殊应用中恢复电子邮件地址

python - 制作所有可能的数字和字母的 6 位数组合

c - 仅使用 RSA 加密来加密长文本字符串

哈希函数从整数坐标对中提供唯一的 uint

java - Java 和 PHP 之间带盐的 SHA-512 不匹配

java - StandardStringDigester 与 Objective C 中的 SHA1 等效