haibrini/password-generator
Composer 安装命令:
composer require haibrini/password-generator
包简介
PHP library for generating easy to remember but hard to guess passwords
关键字:
README 文档
README
PHP library for generating easy to remember, but hard to quess passwords. Inspired by xkcd comic, library generates phrases from frequently used words:
- English phrases (example "throat fast only idea")
- German phrases (examle "laut welt ganze liter")
- Russian transliterated phrases (example "kater nekiy zabrat dazhe")
Install
Via Composer
{
"require": {
"haibrini/password-generator": "~0.5"
}
}
Basic usage
Generate password with default length (4 words) and default separator (space).
use HaiBrini\Password\Generator; // would output something like "throat fast only idea" echo Generator::generateEn(); // would output something like "laut welt ganze liter" echo Generator::generateDe(); // would output something like "kater nekiy zabrat dazhe" echo Generator::generateRuTranslit();
Each of above functions accepts length and separator paramenetrs.
// would output something like "ritual-error-raise-arab-tail" echo HaiBrini\Password\Generator::generateEn(5, '-');
Advanced usage
Call static function Generator::generate to generate passwords from wordlists. Params
- wordlists - array of WordListInterface. If array is shorter then length, function would iterate from the beginning of array.
- lenght - password length in words. Default - 4
- separator - words separator. Default - ' '(space)
Example:
echo Generator::generate( [ new HaiBrini\Password\WordList\En(), new HaiBrini\Password\WordList\RuTranslit() ], 5, '-' ); // would output something like "idea-dovod-critic-sever-happy"
Word lists
English
List of 2048 most frequently used English words.
| Class | Comment | Word lenghth | Example |
|---|---|---|---|
| WordList\En | all words | 4-6 | have, that |
| WordList\En\Nouns | nouns | 4-6 | time, year |
| WordList\En\Verbs | verbs | 4-6 | have, would |
| WordList\En\Adjectives | adjectives | 4-8 | other, good |
German
List of 2048 most frequently used german words(source). Words with diacritic letters (ä, ö, ü) and eszett (ß) excluded.
| Class | Comment | Word lenghth | Example |
|---|---|---|---|
| WordList\De | all words | 4-6 | sich, nicht |
Russian Transliterated
List of 2048 transliterated most frequently used Russain words (source). "Hard" to transliterate letters (ь, ъ) excluded.
| Class | Comment | Word lenghth | Example |
|---|---|---|---|
| WordList\RuTranslit | all words | 4-6 | chto, etot |
| WordList\RuTranslit\Nouns | nouns | 4-8 | chelovek, vremya |
| WordList\RuTranslit\Verbs | verbs | 4-8 | moch, skazat |
| WordList\RuTranslit\Adjectives | adjectives | 4-8 | novyy, bolshoy |
Security
If OpenSSL extension avaivable library would use openssl_random_pseudo_bytes for random number generation.
Testing
$ php vendor/bin/phpunit
Changelog
0.5.0
- Added option for uppercase/capitalize
Contributing
To add new language open an issue with link to frequency dictionary.
Pull requests are welcome.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 276
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-22