cpt-sugiura / zxcvbn-php
基于 Zxcvbn JS 的现实密码强度评估 PHP 库
1.1.1
2020-06-30 04:31 UTC
Requires
- php: ^7.1
- symfony/polyfill-mbstring: >=1.3.1
Requires (Dev)
README
Zxcvbn-PHP 是一个使用模式匹配和最小熵计算的密码强度评估器。Zxcvbn-PHP 基于来自 Dropbox 和 @lowe 的 JavaScript zxcvbn 项目。 "zxcvbn" 是一个糟糕的密码,就像 "qwerty" 和 "123456" 一样。
zxcvbn 通过模式匹配和保守的熵计算尝试给出合理的密码建议。它找到了 10k 个常见密码、常见的美国名字和姓氏、常见的英语单词以及常见的模式,如日期、重复(aaa)、序列(abcd)和 QWERTY 模式。
安装
可以使用 Composer 安装此库,将其作为依赖项添加到您的 composer.json 文件中。
通过命令行运行: composer require bjeavons/zxcvbn-php
然后在您的 composer.json 中添加
{ "require": { "bjeavons/zxcvbn-php": "^1.0" } }
然后通过命令行运行 composer update
,并将自动加载器包含到您的 PHP 脚本中,以便 ZxcvbnPhp 类可用。
require_once 'vendor/autoload.php';
用法
use ZxcvbnPhp\Zxcvbn; $userData = [ 'Marco', 'marco@example.com' ]; $zxcvbn = new Zxcvbn(); $weak = $zxcvbn->passwordStrength('password', $userData); echo $weak['score']; // will print 0 $strong = $zxcvbn->passwordStrength('correct horse battery staple'); echo $strong['score']; // will print 4 echo $weak['feedback']['warning']; // will print user-facing feedback on the password, set only when score <= 2 // $weak['feedback']['suggestions'] may contain user-facing suggestions to improve the score
分数是 0 到 4 的整数
- 0 表示密码极其可猜测(在 10^3 次猜测内),字典单词如 'password' 或 'mother' 得分是 0
- 1 仍然非常可猜测(猜测 < 10^6),在字典单词上添加一个额外的字符可以得 1
- 2 有点可猜测(猜测 < 10^8),提供了一些针对无限制在线攻击的保护
- 3 是安全不可猜测的(猜测 < 10^10),在离线慢速哈希场景中提供适度保护
- 4 是非常不可猜测的(猜测 >= 10^10)并且提供强大的离线慢速哈希场景保护
致谢
感谢
- @lowe 为原始的 JavaScript Zxcvbn
- @Dreyer 的移植 用于初始实现的参考
- @mkopinsky 为与上游评分同步进行的重大更新