bcrypt - Libsodium(钠)VS Bcrypt
问题描述
我发现 Symfony 4.4 使用 Libsodium (Sodium) 作为密码的编码方法,并在未安装 Sodium 时使用 Bcrypt。
钠比 Bcrypt 好吗?
如果是这样,为什么它更好?有什么不同?
解决方案
我对密码哈希器也很陌生,我自己也想知道类似的东西,所以这就是我发现的。
该文档指出以下内容:
Argon2i 支持是通过 libsodium 库提供的,该库会根据主机系统自动选择 Argon2 变体(argon2d、argon2i 或 argon2id)。
那么它实际上归结为Argon2 vs Bcrypt。
那么这里有一个关于为什么你应该使用Argon2的解释(2018 年) 。
话虽如此,从 Symfony 5.3 开始,“自动”密码哈希是 Bcrypt。
所以你可能会想,他们为什么选择 Bcrypt?好吧,如果您查看此PR,它会链接到此推文(2019 年),其中说明了有关 Argon2 的以下内容:
在运行时间 < 1000 ms 时它比 bcrypt 弱。
我假设他们(那些审查公关和索赔的人)认为这个陈述/人是可信的,但是有人争论该陈述是否真的正确,以及是否有任何证据支持这一主张。因此,有关更多信息,您可以查看此线程(2021)。
在阅读完以上所有内容后,我现在会坚持使用Bcrypt。
推荐阅读
- reactjs - React Navigation - 自定义 headerRight 组件被自定义 headerTitle 组件覆盖
- html - Bootstrap 5 Navbar-不能分开网站标志(品牌)和导航链接
- javascript - 如何在多个子子元素中定位父元素
- flutter - 如果服务器无法访问,如何显示错误
- node.js - 表达式中未使用的表达式属性名称中提供的值:键:{#loan}
- node.js - 如何检查 JSON 发布请求是否包含某个键并更新 Node.js 中的 JSON 文件
- python - SQL Server 驱动程序 Python 在服务器上无法正常运行
- reactjs - React 测试库:如何测试包含 useLocation() 的组件?
- c# - 当我在 IIS 上发布时,Selenium API 不起作用
- java - 当用户按下回车键时停止程序