rebelinblue/laravel5-zxcvbn

此包已被废弃,不再维护。作者建议使用rebelinblue/laravel-zxcvbn包。

用于Laravel 5.4及更高版本的zxcvbn项目服务提供者

1.5.0 2023-03-06 19:01 UTC

This package is auto-updated.

Last update: 2023-03-06 19:03:57 UTC


README

Build Status Code Coverage Software License

此包提供了一个使用Dropbox的zxcvbn密码强度估计器的验证器;它使用来自bjeavonsPHP实现

安装

此包可以通过Composer安装。

composer require rebelinblue/laravel-zxcvbn

在Laravel 5.5中,包将自动注册服务提供者。在Laravel 5.4中,您必须在config/app.php中手动注册此服务提供者,将REBELinBLUE\Zxcvbn\ZxcvbnServiceProvider::class添加到providers数组中。

还有一个可选的Zxcvbn门面;在Laravel 5.5中,它将自动注册。在Laravel 5.4中,您必须手动注册门面,将以下内容添加到config/app.php中的aliases数组中。

    'Zxcvbn' => REBELinBLUE\Zxcvbn\ZxcvbnFacade::class,

您可以可选地使用此命令发布此包的翻译,但是只有在您想更改它们时才需要。

php artisan vendor:publish --provider="REBELinBLUE\Zxcvbn\ZxcvbnServiceProvider"

使用

如果您已添加别名,则可以使用门面从代码中的任何位置访问Zxcvbn。

<?php

use Zxcvbn;

class MyCustomClass
{
    public function someMethod()
    {
        $strength = Zxcvbn::passwordStrength('Pa$$w0rd');
        dd($strength);
    }    
}

但是,您可能希望将其用作验证器。此包添加了一个名为"zxcvbn"的单个规则。

示例

<?php

$input = [ /* user input */ ];
$validator = Validator::make($input, [
    'password' => 'required|min:6|zxcvbn',
]); 

有两个可选参数,所需的评分从0到4,以及用逗号分隔的其他字段列表以进行比较,例如,要确保一个强密码且不包含用户名或电子邮件,您将使用

'password' => 'required|min:6|zxcvbn:4,username,email',

评分如下

  • 0 - 过于可猜测:危险的密码。 (猜测次数 < 10^3)
  • 1 - 非常可猜测:防止受限制的在线攻击。 (猜测次数 < 10^6)
  • 2 - 有点可猜测:防止不受限制的在线攻击。 (猜测次数 < 10^8)
  • 3 - 安全不可猜测:适度保护离线慢哈希场景。 (猜测次数 < 10^10)
  • 4 - 非常不可猜测:强保护离线慢哈希场景。 (猜测次数 >= 10^10)