双星系统/zxcvbn-symfony

Symfony框架的密码强度验证器。基于Dropbox的zxcvbn项目。

1.0.2 2022-02-14 00:06 UTC

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的分支,后者不再处于活跃开发状态。