nostromo / zxcvbn-php-german
基于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-09-30 02:15:57 UTC
README
Zxcvbn-PHP是一个使用模式匹配和最小熵计算来估计密码强度的库。Zxcvbn-PHP基于来自Dropbox和@lowe的JavaScript zxcvbn项目。"zxcvbn"是一个糟糕的密码,就像"qwerty"和"123456"一样。
zxcvbn试图通过模式匹配和保守的熵计算来提供合理的密码建议。它找到10,000个常见密码、常见的美国姓名和姓氏、常见的英语单词以及常见的模式,如日期、重复(aaa)、序列(abcd)和QWERTY模式。
安装
可以使用Composer安装此库,将其作为依赖项添加到您的composer.json文件中。
通过命令行运行:composer require nostromo/zxcvbn-php-german
或在您的composer.json中添加以下内容
{
"require": {
"nostromo/zxcvbn-php-german": "^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对主要更新以保持与上游评分同步