iiifx-production / password-generator
This package is abandoned and no longer maintained.
No replacement package was suggested.
Simple password generation package
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
Простая библиотека для генерации паролей c возможностью использования криптографически безопасных алгоритмов
Установка
Используя 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( ... )