bjeavons/zxcvbn-php

基于Zxcvbn JS的PHP库,用于现实密码强度估计

1.3.1 2021-12-21 18:37 UTC

README

Zxcvbn-PHP是一个使用模式匹配和最小熵计算来估计密码强度的PHP库。Zxcvbn-PHP基于Dropbox和@lowe的JavaScript zxcvbn项目。"zxcvbn"是一个坏密码,就像"qwerty"和"123456"一样。

zxcvbn通过模式匹配和保守的熵计算尝试提供合理的密码建议。它查找了10k个常见密码、常见美国名字和姓氏、常见英文单词以及常见的模式,如日期、重复(aaa)、序列(abcd)和QWERTY模式。

Build Status Coverage Status Latest Stable Version License

安装

可以使用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)并提供强大的离线慢速哈希场景保护

致谢

感谢