cpt-sugiura/zxcvbn-php

基于 Zxcvbn JS 的现实密码强度评估 PHP 库

1.1.1 2020-06-30 04:31 UTC

This package is auto-updated.

Last update: 2024-09-09 09:31:06 UTC


README

Zxcvbn-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',
  '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)并且提供强大的离线慢速哈希场景保护

致谢

感谢