Libsodium (Sodium) VS Bcrypt

问题描述

我发现 Symfony 4.4 使用 Libsodium (sodium) 作为密码的编码方法,并在未安装钠时使用 Bcrypt。

sodium 是否比 Bcrypt 更好?

如果是这样,为什么更好?有什么区别?

解决方法

我对密码哈希也很陌生,我自己也想知道类似的东西,所以这是我发现的。

documentation 声明如下:

Argon2i 支持是通过 libsodium 库提供的,它 选择 Argon2 变体(argon2d、argon2i 或 argon2id) 自动基于主机系统。


那么它实际上归结为Argon2 vs Bcrypt

好吧,an explanation (2018) 介绍了您应该使用 Argon2 的原因。


话虽如此,从 Symfony 5.3 开始,the "auto" password hasher is Bcrypt

所以你可能会想,他们为什么选择 Bcrypt?好吧,如果您查看此 PR,它会链接到 this tweet (2019),说明以下有关 Argon2 的内容:

在运行时间

我假设他们(审查公关和索赔的人)认为此声明/人是可信的,对于该声明是否确实正确以及是否有任何证据支持此声明存在争议。因此,有关详细信息,您可以查看 this thread (2021)。


阅读以上所有内容后,我现在会坚持使用 Bcrypt

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...