rebelinblue / laravel5-zxcvbn
1.5.0
2023-03-06 19:01 UTC
Requires
- php: >=8.0
- bjeavons/zxcvbn-php: ^0.3||^1.2||^1.3
- illuminate/support: ^5.4||^6.0||^7.0||^8.0||^9.0||^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.14
- orchestra/testbench: ~3.4.10 || ~3.6.7 || ~3.7.8 || ~3.8.6 || ^4.8 || ^5.2 || ^6.0 || ^7.0
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^0.9.2||^1.2
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^5.7||^9.5
- squizlabs/php_codesniffer: ^2.8||^3.5.8
README
此包提供了一个使用Dropbox的zxcvbn密码强度估计器的验证器;它使用来自bjeavons的PHP实现。
安装
此包可以通过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)