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 大小的密码,返回一个stringcheck($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 许可协议