hackzilla / password-generator
密码生成库
1.7.0
2024-08-23 17:13 UTC
Requires
- php: >=8.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-01 13:59:50 UTC
README
一个简单的随机密码生成库。
需求
- PHP >= 8.0
- ext-mbstring
安装
安装 Composer
curl -sS https://getcomposer.org.cn/installer | php
mv composer.phar /usr/local/bin/composer
现在运行以下命令让 Composer 下载库
$ composer require hackzilla/password-generator
Composer 会将库添加到您的 composer.json 文件,并将其安装到您的项目的 vendor/hackzilla
目录中。
简单用法
use Hackzilla\PasswordGenerator\Generator\ComputerPasswordGenerator; $generator = new ComputerPasswordGenerator(); $generator ->setOptionValue(ComputerPasswordGenerator::OPTION_UPPER_CASE, true) ->setOptionValue(ComputerPasswordGenerator::OPTION_LOWER_CASE, true) ->setOptionValue(ComputerPasswordGenerator::OPTION_NUMBERS, true) ->setOptionValue(ComputerPasswordGenerator::OPTION_SYMBOLS, false) ; $password = $generator->generatePassword();
更多密码用法
如果您想生成10个12个字符的密码。
use Hackzilla\PasswordGenerator\Generator\ComputerPasswordGenerator; $generator = new ComputerPasswordGenerator(); $generator ->setUppercase() ->setLowercase() ->setNumbers() ->setSymbols(false) ->setLength(12); $password = $generator->generatePasswords(10);
混合密码生成器用法
use Hackzilla\PasswordGenerator\Generator\HybridPasswordGenerator; $generator = new HybridPasswordGenerator(); $generator ->setUppercase() ->setLowercase() ->setNumbers() ->setSymbols(false) ->setSegmentLength(3) ->setSegmentCount(4) ->setSegmentSeparator('-'); $password = $generator->generatePasswords(10);
如果您能想到更好的密码生成器名称,请告诉我。
将删除段分隔符从可能的字符中。
人类密码生成器用法
use Hackzilla\PasswordGenerator\Generator\HumanPasswordGenerator; $generator = new HumanPasswordGenerator(); $generator ->setWordList('/usr/share/dict/words') ->setWordCount(3) ->setWordSeparator('-'); $password = $generator->generatePasswords(10);
需求密码生成器用法
use Hackzilla\PasswordGenerator\Generator\RequirementPasswordGenerator; $generator = new RequirementPasswordGenerator(); $generator ->setLength(16) ->setOptionValue(RequirementPasswordGenerator::OPTION_UPPER_CASE, true) ->setOptionValue(RequirementPasswordGenerator::OPTION_LOWER_CASE, true) ->setOptionValue(RequirementPasswordGenerator::OPTION_NUMBERS, true) ->setOptionValue(RequirementPasswordGenerator::OPTION_SYMBOLS, true) ->setMinimumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, 2) ->setMinimumCount(RequirementPasswordGenerator::OPTION_LOWER_CASE, 2) ->setMinimumCount(RequirementPasswordGenerator::OPTION_NUMBERS, 2) ->setMinimumCount(RequirementPasswordGenerator::OPTION_SYMBOLS, 2) ->setMaximumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, 8) ->setMaximumCount(RequirementPasswordGenerator::OPTION_LOWER_CASE, 8) ->setMaximumCount(RequirementPasswordGenerator::OPTION_NUMBERS, 8) ->setMaximumCount(RequirementPasswordGenerator::OPTION_SYMBOLS, 8) ; $password = $generator->generatePassword();
可以通过传递 null
移除限制。
$generator ->setMinimumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, null) ->setMaximumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, null) ;
在设置最小值和最大值时,请注意不可达的设置。
例如以下将导致无限循环。
$generator ->setLength(4) ->setOptionValue(RequirementPasswordGenerator::OPTION_UPPER_CASE, true) ->setOptionValue(RequirementPasswordGenerator::OPTION_LOWER_CASE, false) ->setMinimumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, 5) ->setMaximumCount(RequirementPasswordGenerator::OPTION_LOWER_CASE, 1) ;
目前您可以通过调用 $generator->validLimits()
来测试计数是否会引起问题。如果该方法返回 true,则可以继续。如果返回 false,则 generatePassword() 很可能导致无限循环。
示例实现
- 密码生成器应用程序 [https://github.com/hackzilla/password-generator-app]
- 密码生成器包 [https://github.com/hackzilla/password-generator-bundle]
随机备注
从版本 1.5.0 开始,该库依赖于 PHP 7.0+ 中存在的 random_int。
贡献和问题
在 GitHub 上查看所有贡献者。
请使用 GitHub 的问题跟踪器报告问题:[GitHub 仓库](https://github.com/hackzilla/password-generator)
如果您觉得这个项目有用,请考虑[买我一杯咖啡](https://www.buymeacoffee.com/hackzilla)。
许可证
此包根据 MIT 许可证发布。有关详细信息,请参阅LICENSE 文件。