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_DIGIT
CHECK_MEDIUM
- 必须包含CHECK_EASY
和CHECK_UPPER_CASE
CHECK_STRONG
- 必须包含CHECK_MEDIUM
和CHECK_SPEC
CHECK_IMPOSSIBLE
- 必须包含CHECK_STRONG
和CHECK_SPACE
CHECK_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)