anatoliy-novoselov / labs
0.0.6
2019-01-10 05:26 UTC
Requires
- php: >=7.2.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-27 09:21:33 UTC
README
PHP代码片段-适用于日常在PHP项目中使用。尽可能添加自动测试。
安装
/> composer require anatoliy-novoselov/labs
密码
处理密码的类
常量
CHECK_UPPER_CASE- 必须包含大写字母CHECK_LOWER_CASE- 必须包含小写字母CHECK_DIGIT- 必须包含数字CHECK_SPEC- 必须包含特殊字符CHECK_SPACE- 必须包含空格CHECK_EASY- 必须包含CHECK_LOWER_CASE和CHECK_DIGITCHECK_MEDIUM- 必须包含CHECK_EASY和CHECK_UPPER_CASECHECK_STRONG- 必须包含CHECK_MEDIUM和CHECK_SPECCHECK_IMPOSSIBLE- 必须包含CHECK_STRONG和CHECK_SPACECHECK_ANY- 字符不遵循规定HASH_PASSWORD_SALT_ENVIRONMENT_KEY- 存储密码盐的环境变量COMPLEXITY_RETURN_AS_FLOAT- 将密码复杂度作为float返回COMPLEXITY_NONE- 非常简单的密码(或包含在最受欢迎的密码列表中)COMPLEXITY_LOW- 简单的密码COMPLEXITY_MEDIUM- 正常的密码COMPLEXITY_STRONG- 良好的密码COMPLEXITY_IMPOSSIBLE- 极佳(复杂的)密码
变量
$HASH_PASSWORD_SALT- 密码的通用盐,如果无法存储在环境变量中则使用它进行加密
方法
密码检查
check(string $password, int $rules, int $minLength = 6, float $maxLength = INF) - 根据特定规则和长度检查密码。规则在以 CHECK_ 为前缀的常量中描述。
<?php
...
$validate = \Snippet\Password::check('fooBar', \Snippet\Password::CHECK_UPPER_CASE | \Snippet\Password::CHECK_LOWER_CASE, 3, 6);
var_dump($validate);
/> bool(true)
密码哈希
hash(string $password, string $dispersion = '', string $salt = '') - 创建密码的 sha256 哈希,使用 $salt 和 $dispersion 作为盐和散列。
散列允许为具有相同密码的不同用户创建唯一的哈希。最好使用用户注册日期或用户标识符作为散列。
最好设置环境变量 PASSWORD_HASH_SALT 或 \Snippet\Password::$HASH_PASSWORD_SALT_ENVIRONMENT_KEY 的变量,它将自动用作密码的盐。
<?php
echo \Snippet\Password::hash('foobar', '1', '**s<dsOsP?');
/> dd79d7383ae053279bbd6481696c1d025543ad308e7f1567fa879625d851397e
密码复杂度
complexity(string $password, bool $as_float = false) 返回密码的复杂度,以 float 或 int 的形式返回复杂度等级。 int 可以取 COMPLEXITY_NONE、COMPLEXITY_LOW、COMPLEXITY_MEDIUM、COMPLEXITY_STRONG 或 COMPLEXITY_IMPOSSIBLE 之一
<?php
var_dump(\Snippet\Password::complexity('foobar') == \Snippet\Password::COMPLEXITY_LOW);
/> bool(true)