iiifx-production / password-generator
此包已被废弃且不再维护。未建议替代包。
简单的密码生成包
v0.2.0
2016-11-08 22:35 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: 4.7.*@stable
This package is not auto-updated.
Last update: 2021-02-04 11:11:43 UTC
README
一个简单的密码生成库,支持使用加密算法
安装
使用 Composer
$ composer require "iiifx-production/password-generator:0.*"
使用
创建简单短密码:5个字符,只包含数字
use iiifx\PasswordGenerator\Length; use iiifx\PasswordGenerator\Options; use iiifx\PasswordGenerator\Symbols; use iiifx\PasswordGenerator\Generator; $length = new Length( 5 ); $symbols = [ new Symbols( '1234567890' ), ]; $options = new Options( $length, $symbols ); $generator = new Generator( $options ); echo $generator->generate(); # 47884 echo $generator->generate(); # 62802 echo $generator->generate(); # 35187
复杂安全的密码:10到16个字符,包含数字、字母和特殊字符
use iiifx\PasswordGenerator\Method\MethodOpenSSL; $length = new Length( 10, 16 ); # 10-16 знаков $symbols = [ new Symbols( 'abcdefghijklmnopqrstuvwxyz', 100 ), # Приоритет 100 new Symbols( 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 50 ), # Приоритет 50 new Symbols( '1234567890', 50 ), # Приоритет 50 new Symbols( '!@#$%?&:*+-.', 30 ), # Приоритет 30 ]; $options = new Options( $length, $symbols ); $method = new MethodOpenSSL(); $generator = new Generator( $options, $method ); echo $generator->generate(); # Xn64h1:wgDk@@eh echo $generator->generate(); # lqF&X4ywaAo echo $generator->generate(); # E8Yk60*qavzVr
使用加密安全的生成方法
use iiifx\PasswordGenerator\Method\MethodMT; use iiifx\PasswordGenerator\Method\MethodOpenSSL; use iiifx\PasswordGenerator\Method\MethodRandomInt; # По умолчанию используется базовый небезопасный алгоритм - MT $generator = new Generator( $options ); # Этот пример аналогичен предыдущему $generator = new Generator( $options, new MethodMT() ); # Для PHP7 возможно использовать безопасный метод random_int() $generator = new Generator( $options, new MethodRandomInt() ); # При наличии расширения возможно использовать безопасный метод OpenSSL $generator = new Generator( $options, new MethodOpenSSL() ); # Любой из методов можно проверить на доступность MethodMT::isAvailable(); # true, доступен всегда MethodRandomInt::isAvailable(); # false, метод недоступен для PHP5 MethodOpenSSL::isAvailable(); # true, расширение OpenSSL подключено
其他示例
模拟哈希
$generator = new Generator( new Options( new Length( 32 ), [ new Symbols( '0123456789abcdef' ) ] ) ); echo $generator->generate(); # 3a971aefab2b86468d1de895110b0e39
测试
许可证
计划
- 使用加密安全的随机数生成器
对于 PHP7 使用 random_int()对于 PHP5 使用 openssl_random_pseudo_bytes()- 使用第三方解决方案
- 实现基于模板的密码生成
- 实现通过 Generator::create( ... ) 快速创建密码