Contributed by
Zan Baldwin
in #21604.
Symfony 推荐使用 Bcrypt password hasher 来为你的程序密码加密。Bcrypt 专门设计成存储长文密码并被 PHP 原生支持。
但是,security 是一个快速发展的领域,新版最佳实践以及推荐用法持续出现。最近几个月 Argon2 加密算法受到爆发欢迎,尤其是在赢得了 2015 年的 Password Hashing 密码加密大赛中胜出之后。实际上,PHP 7.2 (2017年末推出) 包括了 对 Argon2 的内建支持。
这也是为何我们决定 在 Symfony 3.4 中 Argon2i password hasher。首先,如果你不使用 PHP 7.2,添加对 Argon2 的支持要在你的服务器上安装 Libsodium PHP extension 或者在你的项目中添加 libsodium-php library。然后,使用 argon2i
作为 password hasher:
1 2 3 4 5 6 7 | # app/config/security.yml
security:
# ...
encoders:
Symfony\Component\Security\Core\User\User:
algorithm: 'argon2i' |
在现有程序中以合理的加密高代价来使用 Bcrypt,也就没有再使用 Argon2i 来对密码重新加密的迫切需求。但是,如果你正创建一个全新项目,不妨考虑这个新的密码加密算法。