christian-riesen / password-hash-bundle
为symfony2定制的密码编码器,使用php 5.5的新密码哈希api(支持5.3 + 5.4回退)
Requires
- php: >=5.3.7
- ircmaxell/password-compat: 1.*
Requires (Dev)
- symfony/security: 2.1.*
This package is auto-updated.
Last update: 2022-02-01 12:23:29 UTC
README
为symfony2定制的密码编码器,使用php 5.5的新密码哈希api(支持5.3 + 5.4回退)。
使用password_compat实现,由Anthony Ferrara提供,为PHP 5.3和5.4提供回退。
在PHP 5.5中,它将忽略回退并使用原生的password_hash函数。
安装
使用composer并在你的composer.json
中引入库
{
"require": {
"christian-riesen/password-hash-bundle": "1.*",
}
}
更新后,你将在这个包中找到这个库以及所需的所有库。
现在更新AppKernel.php
public function registerBundles() { $bundles = array( // ... new ChristianRiesen\PasswordHashBundle\PasswordHashBundle(), ); }
现在它已经准备好在app\config
目录下的security.yml
文件中使用。
security:
encoders:
Symfony\Component\Security\Core\User\User:
id: security.encoder.passwordhash
如果你有不同的模型,你可以将其更改为该模型,例如,如果你遵循了doctrine entity provider cookbook条目,那么你将得到以下内容
security:
encoders:
Acme\UserBundle\Entity\User:
id: security.encoder.passwordhash
配置
包含一个单独的配置,bcrypt的成本因子。默认设置为15。我选择不使用内置的默认值,以确保那些资源较少的人可以降低它,或者那些安全性需求较高的人可以提高它。即使这个值改变了,系统也可以读取旧密码而不会有问题,因为成本因子是保存部分的一部分。
要更改默认设置,请将以下内容添加到你的config.yml
cr_passwordhash:
cost: 5
注意:成本必须是介于4和31之间的整数。
存储
无论你如何存储密码哈希,你都需要始终为它保留60字节。哈希永远不会更短,但总是恰好是这个长度。确保你可以正确地存储它,因为它可能包含可能引起手工查询问题的字符。
盐包含在密码哈希中,因此不需要额外的字段。
测试
要运行测试,你必须通过composer install --dev
安装开发需求,以便它们可以运行。symfony安全组件是使其干净运行所需的(对于接口和一个抽象类)。