双星系统 / zxcvbn-symfony
Symfony框架的密码强度验证器。基于Dropbox的zxcvbn项目。
1.0.2
2022-02-14 00:06 UTC
Requires
- bjeavons/zxcvbn-php: ~0.1|~1.0
- symfony/validator: ~2.8|~3.0|~4.0|~5.0|~6.0
Requires (Dev)
- phpunit/phpunit: ^5.4
This package is auto-updated.
Last update: 2024-09-14 05:34:11 UTC
README
Symfony验证器组件的密码强度约束。基于Dropbox的zxcvbn项目和@lowe,该项目在密码强度估计方面使用了zxcvbn-php。
zxcvbn通过模式匹配和保守的熵计算尝试给出合理的密码建议。它可以找到10k个常见密码、常见的美国家庭名和姓氏、常见英文单词以及常见的模式,如日期、重复(aaa)、序列(abcd)和QWERTY模式。
安装
可以通过将库作为依赖项添加到composer.json文件中,使用Composer来安装此库。
$ composer require double-star-systems/zxcvbn-symfony
用法
可以使用注解将约束附加到实体字段上。
use DoubleStarSystems\ZxcvbnSymfony\Constraint\PasswordStrength; class User { /** * @PasswordStrength(min_score=3, message="Custom message for weak password error") */ private $password; }
如果您不需要自定义消息,可以使用简单的@PasswordStrength(3)
形式,以3
为最小密码分数。
有关使用Symfony验证器进行验证的更多信息,请参阅文档。
或者,可以直接将约束添加到表单字段中。
use DoubleStarSystems\ZxcvbnSymfony\Constraint\PasswordStrength; use Symfony\Component\Form\Extension\Core\Type\PasswordType; public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('password', PasswordType::class, [ 'required' => true, 'constraints' => [ new PasswordStrength(['min_score' => 3]), ], ]) ; }
分数
分数是一个从0到4的整数(您可以在心中将其表示为强度条)
0
太容易被猜测:有风险的密码。(猜测数 < 10^3)1
非常容易被猜测:防止在线攻击(猜测数 < 10^6)2
有点容易被猜测:防止未限制的在线攻击(猜测数 < 10^8)3
安全不可猜测:中等保护离线慢速哈希场景(猜测数 < 10^10)4
非常难以猜测:强烈保护离线慢速哈希场景(猜测数 >= 10^10)
许可证
此源代码形式受Mozilla Public License,v. 2.0条款的约束。如果未与此文件一起分发MPL副本,您可以从中获得一份http://mozilla.org/MPL/2.0/。
查看完整的许可证。
此项目是Mathieu Darse的Password Strength Validator的分支,后者不再处于活跃开发状态。