bjeavons / zxcvbn-php
基于Zxcvbn JS的PHP库,用于现实密码强度估计
1.3.1
2021-12-21 18:37 UTC
Requires
- php: ^7.2 | ^8.0 | ^8.1
- ext-json: *
- symfony/polyfill-mbstring: >=1.3.1
Requires (Dev)
Suggests
- ext-gmp: Required for optimized binomial calculations (also requires PHP >= 7.3)
This package is auto-updated.
Last update: 2024-08-29 04:14:22 UTC
README
Zxcvbn-PHP是一个使用模式匹配和最小熵计算来估计密码强度的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', '[email protected]' ]; $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为与上游评分同步进行了主要更新