degraciamathieu / riddler
密码生成服务
v1.3.2
2019-05-27 14:50 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ^4.8 || ^5.7 || ^6.5
README
DeGraciaMathieu/Riddler
密码生成服务
安装
在下面的控制台中运行命令以将包下载到您的项目中
composer require degraciamathieu/riddler
密码生成使用方法
密码是一组由字典和出现次数组成的一或多个标准。
可用的字典有
- AccentedLetter
- AccentedUppercaseLetter
- Digit
- Letter
- SpecialCharacter
- UppercaseLetter
可用的出现次数
- Strict
- Between
- None
require 'vendor\autoload.php'; use DeGraciaMathieu\Riddler\Password; use DeGraciaMathieu\Riddler\Dictionaries; use DeGraciaMathieu\Riddler\Occurrences; $password = new Password(); $password->addCriteria(new Dictionaries\Digit(), new Occurrences\Strict(5)); $password->addCriteria(new Dictionaries\Letter(), new Occurrences\Between(3, 6)); $password->generate();
为了更快地构建密码,可以使用预定义标准集,并使用格式。
可用的格式
- LongDigit
- MixedComplex
- MixedStrong
- SmallAlphanumeric
- StrongAlphanumeric
require 'vendor\autoload.php'; use DeGraciaMathieu\Riddler\Password; use DeGraciaMathieu\Riddler\Formats; $password = new Password(); $password->addFormat(new Formats\StrongAlphanumeric()); $password->generate();
可以创建自己的类格式,实现DeGraciaMathieu\Riddler\Contracts\Format接口。
检查密码得分
还可以使用Score方法检查密码是否匹配所需的标准列表。
$password = new Password; $password->addCriteria(new Digit(), new Strict(3)); $password->addCriteria(new Letter(), new Between(3, 5)); $password->score('123abcd'); // 100 $password = new Password; $password->addCriteria(new Digit(), new Strict(3)); $password->addCriteria(new Letter(), new Between(3, 5)); $password->score('123a'); // 50
Score方法的价值是验证标准的百分比。
检查密码是否通过
$password = new Password; $password->addCriteria(new Digit(), new Strict(3)); $password->addCriteria(new Letter(), new Between(3, 5)); $password->passed('123a'); // [ // ['name' => 'digit_strict_3', 'passed' => true], // ['name' => 'letter_between_3_5', 'passed' => false], // ]
$password = new Password; $password->addNamedCriteria('MyName', new Digit(), new Strict(3)); $password->passed('123'); // [ // ['name' => 'MyName', 'passed' => true], // ]
示例
经典
$password = new Password; $password->addCriteria(new Digit(), new Strict(10)); $password->generate(); // "4731412968" $password = new Password; $password->addCriteria(new Letter(), new Strict(20)); $password->generate(); // "tugmdzkgohnnkfrxuqns" $password = new Password; $password->addCriteria(new UppercaseLetter(), new Strict(20)); $password->generate(); // "JDXIRCEBWDPZLCWIJNYZ" $password = new Password; $password->addCriteria(new UppercaseLetter(), new Between(5, 7)); $password->addCriteria(new Letter(), new Between(5, 7)); $password->generate(); // "xIXPstuqTZmb" $password = new Password; $password->addCriteria(new SpecialCharacter(), new Strict(15)); $password->generate(); // "#^_=%§][:@_]^%=" $password = new Password; $password->addCriteria(new AccentedLetter(), new Strict(15)); $password->generate(); // "üãöîâüîüûàóäùéú" $password = new Password; $password->addCriteria(new AccentedUppercaseLetter(), new Strict(15)); $password->generate(); // "ÂÚÏÝÒÌÀÂÜÝÛËÍÊÌ" $password = new Password; $password->addCriteria(new Digit(), new Strict(5)); $password->addCriteria(new Letter(), new Strict(5)); $password->addCriteria(new SpecialCharacter(), new Between(5, 10)); $password->generate(); // "!186u;n&~§3r7hb|~?" $password = new Password; $password->addCriteria(new Digit(), new Between(5, 7)); $password->addCriteria(new Letter(), new Between(5, 7)); $password->addCriteria(new UppercaseLetter(), new Between(5, 7)); $password->addCriteria(new AccentedLetter(), new Between(5, 7)); $password->addCriteria(new SpecialCharacter(), new Between(5, 7)); $password->generate(); // "uELòp§iO°L§7b~â]3ûë7èm96A"
格式
$password = new Password(); $password->addFormat(new Formats\LongDigit()); $password->generate(); // "075197457894437657185665450123" $password = new Password(); $password->addFormat(new Formats\SmallAlphanumeric()); $password->generate(); // "mA5M6ap167gRTeE" $password = new Password(); $password->addFormat(new Formats\StrongAlphanumeric()); $password->generate(); // "492OHwdJEdDT5Lb89zhY9c26j4XhmX" $password = new Password(); $password->addFormat(new Formats\MixedStrong()); $password->generate(); // "41súdSXWHV65k2G0lr0õèñzåY" $password = new Password(); $password->addFormat(new Formats\MixedComplex()); $password->generate(); // "Äûc[%ÀÁkWï_1V8k3uw*3§ÔEaAÍ+5§ôåûWYI6äÕ7"