innoscience/passwordly

一个简单得令人难以置信的PHP包,用于生成和验证基于随机需求的密码。

1.0.0 2014-03-25 03:02 UTC

This package is not auto-updated.

Last update: 2024-09-28 13:58:15 UTC


README

一个简单得令人难以置信的PHP包,用于生成和验证基于随机需求的密码。

Build Status

版权 (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) : 将密码与设置的要求进行比较,返回 truefalse

其他方法

  • 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 许可协议