elnur/blowfish-password-encoder-bundle

基于Blowfish (bcrypt) 的 Symfony2 密码编码器

安装次数: 129,582

依赖项: 0

建议者: 0

安全: 0

星级: 62

关注者: 1

分支: 8

开放问题: 0

类型:symfony-bundle

0.5.0 2013-10-22 22:59 UTC

This package is not auto-updated.

Last update: 2024-09-28 13:51:12 UTC


README

Build Status

仍在使用MD5或SHA家族散列算法对密码进行“加密”?如果是这样,请阅读这篇文章这篇文章,然后回来获取这个包的副本。

BCrypt密码编码器已被添加到Symfony核心的2.2版本中,并在2.3版本中进行了改进,达到了本包的水平。因此,如果您使用的是Symfony 2.3+,请考虑使用核心中的编码器而不是此包。

安装

  1. 将此添加到composer.json

    {
        "require": {
            "elnur/blowfish-password-encoder-bundle": "~0.5"
        }
    }
    

    然后运行

    php composer.phar update elnur/blowfish-password-encoder-bundle
    
  2. app/AppKernel.php中启用该包

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Elnur\BlowfishPasswordEncoderBundle\ElnurBlowfishPasswordEncoderBundle(),
        );
    }
    
  3. 最后,在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建议添加扩展类,以便使包更容易安装和配置。