stymiee / password-helper
一个PHP库,默认情况下让使用密码的最佳实践变得简单。
Requires
- php: >=7.2.0
Requires (Dev)
- phpmd/phpmd: @stable
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: @stable
This package is auto-updated.
Last update: 2024-09-07 15:17:59 UTC
README
密码助手 (password-helper)
一个PHP库,默认情况下让使用密码的最佳实践变得简单。
要求
- PHP 7.2+
注意:有一个PHP 5兼容版本可用。
安装
如果您使用 Composer 来管理项目的依赖项,只需将 stymiee/password-helper 添加到您的项目 composer.json 文件中即可。
以下是一个仅定义对密码助手依赖关系的最小 composer.json 文件示例
{
"require": {
"stymiee/password-helper": "^2"
}
}
要使用PHP 5兼容版本,请使用版本1.*
{
"require": {
"stymiee/password-helper": "^1"
}
}
基本用法
配置
要配置密码助手以满足您的业务需求,您可以在创建密码助手对象时设置密码策略。您可以配置以下六个因素是否需要(或不需要)以及如果需要,该密码特性的最小标准。它们是
- minimumLength - 设置密码必须的最小长度。(默认:10)
- minimumSpecialChars - 设置密码中必须包含的最小特殊字符数。(默认:1)
- minimumUppercase - 设置密码中必须包含的最小大写字母数。(默认:1)
- minimumLowercase - 设置密码中必须包含的最小小写字母数。(默认:1)
- minimumLetters - 设置密码中必须包含的最小字母总数。(默认:1)
- minimumDigits - 设置密码中必须包含的最小数字数。(默认:1)
如果您在创建密码助手时未传递任何自定义策略规则,则默认为上述值。
$passwordHelper = new Password();
等同于
$passwordHelper = new Password([
'minimumLetters' => 1,
'minimumDigits' => 1,
'minimumLowercase' => 1,
'minimumUppercase' => 1,
'minimumSpecialChars' => 1,
'minimumLength' => 10
]);
要修改策略,可以通过名称和其自定义值将其传递给构造函数。下面的代码将所有规则设置为需要每种类型两个,并设置最小密码长度为十二个字符。
$passwordHelper = new Password([
'minimumLetters' => 2,
'minimumDigits' => 2,
'minimumLowercase' => 2,
'minimumUppercase' => 2,
'minimumSpecialChars' => 2,
'minimumLength' => 12
]);
您只需在更改其值时传递自定义值。下面的代码仅更改了 minimumDigits 和 minimumLength 的值。
$passwordHelper = new Password([
'minimumDigits' => 2,
'minimumLength' => 12
]);
要删除一个要求,将其值设为零。
$passwordHelper = new Password([
'minimumSpecialChars' => 0 // Special characters are not required
]);
生成一个新密码
$password = (\PasswordHelper\new Password())->generate(); // 8TpKC>&nQA
验证密码是否符合您的密码策略
$password = \PasswordHelper\new Password();
echo var_dump($password->validateComplexity('!aa34sDDdfg7dfgdsfg2gg'));
echo var_dump($password->validateComplexity('1234'));
输出
true
false
检查密码强度
$password = \PasswordHelper\new Password();
echo $password->checkStrength('a');
echo $password->checkStrength('qr193');
echo $password->checkStrength('8TpKC>&nQA');
输出
Very Weak
Good
Very Strong
散列密码
$hashedPassword = (\PasswordHelper\new Password())->hash('secret1234');
验证密码
$password = \PasswordHelper\new Password();
if ($password->verify('secret1234', $row['password_hash'])) {
// Let them in
} else {
// Authentication failure
}
更新密码散列
$password = \PasswordHelper\new Password();
if ($password->checkForRehash($row['password_hash'])) {
$newHash = $password->hash('secret1234');
// ... then save the new hash ...
}
支持
如果您在使用此库时需要帮助,请首先查看此包中包含的 HELP.md 文件。它包括常见问题和它们的解决方案。
如果您需要额外的帮助,您可以在 Stack Overflow 找到我。确保当您 提问 时,将问题标记为 PHP 和 password。请确保您遵循他们的 提问指南,因为提出的问题不佳将被关闭,并且我将无法帮助您。
一个好的问题将包括以下所有内容
- 问题的描述(你试图做什么?你期望的结果是什么?你实际上得到的结果是什么?)
- 你正在使用的代码(仅发布相关代码)
- 您收到的任何错误信息
请勿使用Stack Overflow来报告错误。 错误可以在这里报告。这里。