为什么现在密码加密依然大多选择 pbkdf2 而不是 argon2

查看 70|回复 2
作者:wenerme   
参考 https://npmtrends.com/argon2-vs-pbkdf2
按照如下的分析,应该 argon2 更应该被推广使用
在项目中选择密码哈希算法时,主要考虑以下因素:安全性、性能、可用性和社区支持。以下是关于 Argon2 、bcrypt 、scrypt 和 PBKDF2 的简要比较:
[ol]

  • 安全性:
  • Argon2:目前被认为是最安全的密码哈希算法。它赢得了密码哈希竞赛( PHC ),并且具有很好的内存密集度,抵抗侧信道攻击和时间-空间权衡攻击。
  • bcrypt:也是一种安全的密码哈希算法,但相较于 Argon2 ,它的内存密集度较低,抵抗侧信道攻击和时间-空间权衡攻击的能力较弱。
  • scrypt:设计为内存密集型算法,以抵抗大规模定制硬件攻击。它的安全性优于 bcrypt ,但仍然低于 Argon2 。
  • PBKDF2:相对于其他三种算法,PBKDF2 的安全性最低,因为它没有针对 GPU 或 ASIC 攻击的内存密集特性。

  • 性能:
  • Argon2 、bcrypt 和 scrypt 的性能可以通过调整参数(如内存、迭代次数等)来控制。你可以根据项目的需求和硬件资源调整这些参数。
  • PBKDF2 性能主要取决于迭代次数,但与其他算法相比,它在现代硬件上的性能相对较差。

  • 可用性:
  • 大多数编程语言和框架都支持这四种哈希算法,但在某些情况下,Argon2 的支持可能不如其他算法广泛。在选择算法时,需要确保所选算法在项目使用的技术栈中可用。

  • 社区支持:
  • Argon2 、bcrypt 和 scrypt 都拥有相对广泛的社区支持,而且这些算法已经得到了安全研究人员的审查和推荐。PBKDF2 也得到了一定的支持,但相对较弱。

    [/ol]
    综合考虑上述因素,Argon2 (尤其是 Argon2id 变体)通常是首选算法,因为它在安全性和性能方面表现最佳。如果项目中 Argon2 的支持有限,可以考虑使用 bcrypt 或 scrypt 。PBKDF2 应该作为最后的选择,仅在其他选项不可用时使用。

    argon2, pbkdf2, 加密, 密码

  • liuidetmks   
    pbkdf2 系统内置,而且是标准。方便
    对普通人来说,强度应该够了。
    optional   
    印象中大都用的 bcrypy 吧,pkb 用的多的来源是哪里?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部