一些日常使用的PHP代码片段

0.0.6 2019-01-10 05:26 UTC

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_CASECHECK_DIGIT
  • CHECK_MEDIUM - 必须包含 CHECK_EASYCHECK_UPPER_CASE
  • CHECK_STRONG - 必须包含 CHECK_MEDIUMCHECK_SPEC
  • CHECK_IMPOSSIBLE - 必须包含 CHECK_STRONGCHECK_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) 返回密码的复杂度,以 floatint 的形式返回复杂度等级。 int 可以取 COMPLEXITY_NONECOMPLEXITY_LOWCOMPLEXITY_MEDIUMCOMPLEXITY_STRONGCOMPLEXITY_IMPOSSIBLE 之一

<?php
var_dump(\Snippet\Password::complexity('foobar') == \Snippet\Password::COMPLEXITY_LOW);
/> bool(true)