elnur / blowfish-password-encoder-bundle
基于Blowfish (bcrypt) 的 Symfony2 密码编码器
0.5.0
2013-10-22 22:59 UTC
Requires
- php: >=5.3.2
- ircmaxell/password-compat: ~1.0
- symfony/framework-bundle: ~2.0
- symfony/security-bundle: ~2.0.25|~2.1.13|~2.2.9|~2.3.6|~2.4
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is not auto-updated.
Last update: 2024-09-28 13:51:12 UTC
README
仍在使用MD5或SHA家族散列算法对密码进行“加密”?如果是这样,请阅读这篇文章和这篇文章,然后回来获取这个包的副本。
BCrypt密码编码器已被添加到Symfony核心的2.2版本中,并在2.3版本中进行了改进,达到了本包的水平。因此,如果您使用的是Symfony 2.3+,请考虑使用核心中的编码器而不是此包。
安装
-
将此添加到
composer.json
{ "require": { "elnur/blowfish-password-encoder-bundle": "~0.5" } }
然后运行
php composer.phar update elnur/blowfish-password-encoder-bundle
-
在
app/AppKernel.php
中启用该包public function registerBundles() { $bundles = array( // ... new Elnur\BlowfishPasswordEncoderBundle\ElnurBlowfishPasswordEncoderBundle(), ); }
-
最后,在
app/config/security.yml
中设置编码器security: encoders: Symfony\Component\Security\Core\User\User: id: security.encoder.blowfish
配置
默认情况下,编码器使用15
的成本因子,这是一个相当合理的值,但您可以通过编辑config.yml
文件将其更改为4-31
范围内的不同值
elnur_blowfish_password_encoder:
cost: 10
成本的增加会使编码密码所需的时间加倍。
您可以在任何时间更改成本因子——即使您已经使用不同的成本因子对一些密码进行了编码。新密码将使用新的成本因子进行编码,而已经编码的密码将使用它们编码时的成本因子进行验证。
使用
每个新密码都会自动生成一个盐,不需要持久化。由于编码后的密码包含用于编码它的盐,因此仅持久化编码后的密码就足够了。
所有编码后的密码都是60
个字符长,因此请确保为它们分配足够的持久化空间。
许可
此包采用MIT许可。请参阅包中的完整许可协议
Resources/meta/LICENSE
致谢
我感谢asm89通过提供您所看到的链接并回答我在#symfony
频道上的其他相关问题来启发我。
我还感谢dustin10建议添加扩展类,以便使包更容易安装和配置。