innoscience / passwordly
一个简单得令人难以置信的PHP包,用于生成和验证基于随机需求的密码。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-28 13:58:15 UTC
README
一个简单得令人难以置信的PHP包,用于生成和验证基于随机需求的密码。
版权 (C) 2014 Brandon Fenning
要求
兼容 PHP 5.3+
安装
将 innoscience/passwordly
添加到 composer.json
文件中
"require": {
"innoscience/passwordly": "dev-master"
}
之后,运行 composer update
使用方法
Passwordly 命名空间为 innoscience/passwordly/passwordly
,在文件顶部,您将希望使用
use Innoscience\Passwordly\Passwordly;
创建密码
在创建密码时,Passwordly 首先检查字符要求。任何差异都通过添加随机大小写的字母数字字符来补充。
#####基本:生成 8 个字符的随机密码 $password = Password::can()->generate(8);
#####密码包含 1-3 个符号和 8-16 个字符长度 $password = Password::can()->hasSymbols(1,3)->generate(8, 16);
#####密码至少包含 1 个大写字母、小写字母和数字字符,长度为 8 个字符 $password = Password::can()->hasLower(1)->hasNumbers(1)->hasUpper(1)->generate(8);
检查密码
#####检查密码至少包含 1 个数字和 1 个大写字母,且长度至少为 8 个字符 $isOk = Password::can()->hasNumbers(1)->hasUpper(1)->hasLength(8)->check($password);
#####检查密码不超过 1-3 个数字、1 个符号和 1 个大写字母,且长度至少为 8 个字符但不超过 16 个字符 $isOk = Password::can()->hasNumbers(1,3)->hasUpper(1)->hasSymbols(1)->hasLength(8,16)->strict()->check($password); 当检查密码时,Passwordly 不会使用最大参数,除非调用 ->strict()
方法。
#####检查密码并获取错误 $passwordCheck = new Passwordly(); $isOk = $passwordCheck->hasNumbers(1)->hasUpper(1)->check($password); $errors = $passwordCheck->errors(); // # 返回每个失败要求的数组
详细信息
实例化
Passwordly 可以通过 Passwordly::can()
静态构造函数或简单调用 new Passwordly
来实例化。读取错误消息需要访问 Passwordly 实例,因此对于这些用例不建议从 Passwordly::can()
进行链式调用。
链式方法
hasLower($min, $max = null)
: 密码中可以包含的最小/最大小写字母数。hasUpper($min, $max = null)
: 密码中可以包含的最小/最大大写字母数。hasNumbers($min, $max = null)
: 密码中可以包含的最小/最大数字字符数。hasSymbols($min, $max = null)
: 密码中可以包含的最小/最大非字母数字字符数。hasSpaces($min, $max = null)
: 密码中可以包含的最小/最大空格数。hasLength($min, $max = null)
: 密码的最小/最大长度。strict()
: 告诉check()
对于所有链式方法也强制执行$max
参数
最终方法
generate($min, $max = null)
: 根据设置的要求生成 $min/$max 大小的密码,返回一个string
check($password)
: 将密码与设置的要求进行比较,返回true
或false
其他方法
errors()
: 返回从->check()
生成的错误array
实用方法
这些实用方法在使用时会影响 Passwordly 的所有实例。
Passwordly::setLowerPool($characterPool)
: 重写小写字母字符池Passwordly::setUpperPool($characterPool)
: 重写大写字母字符池Passwordly::setNumberPool($characterPool)
: 重写数字字符池Passwordly::setSymbolPool($characterPool)
: 重写符号字符池Passwordly::getLowerPool()
: 获取小写字母字符池Passwordly::getUpperPool()
: 获取大写字母字符池Passwordly::getNumberPool()
: 获取数字字符池Passwordly::getSymbolPool()
: 获取符号字符池Passwordly::setDisableOpenssl($bool)
: Passwordly 使用 php 中的openssl_random_pseudo_bytes()
函数生成随机字符串,如果此函数不可用,使用此方法并将它设置为TRUE
以使用内置的替代函数。
测试
Passwordly 已经过完全的单元测试。测试位于 Passwordly 包的 tests
目录中,可以在包的基本目录中使用 phpunit
运行。
许可协议
Passwordly 采用 GPLv2 许可协议