首页 > 解决方案 > Libsodium(钠)VS Bcrypt

问题描述

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

钠比 Bcrypt 好吗?

如果是这样,为什么它更好?有什么不同?

标签: bcryptpassword-encryptionlibsodium

解决方案


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

文档指出以下内容:

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


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

那么这里有一个关于为什么你应该使用Argon2的解释(2018 年) 。


话虽如此,从 Symfony 5.3 开始,“自动”密码哈希是 Bcrypt

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

在运行时间 < 1000 ms 时它比 bcrypt 弱。

我假设他们(那些审查公关和索赔的人)认为这个陈述/人是可信的,但是有人争论该陈述是否真的正确,以及是否有任何证据支持这一主张。因此,有关更多信息,您可以查看此线程(2021)。


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


推荐阅读