haibrini / password-generator
PHP库,用于生成易于记忆但难以猜测的密码
v0.6.0
2017-10-22 16:34 UTC
Requires (Dev)
- phpunit/phpunit: ~4.3.0
Suggests
- ext-openssl: Allows to use cryptographically strong random generator
This package is not auto-updated.
Last update: 2024-09-29 02:39:27 UTC
README
PHP库,用于生成易于记忆、但难以猜测的密码。灵感来源于 xkcd漫画,库从常用单词生成短语
- 英文短语(例如 "throat fast only idea")
- 德文短语(例如 "laut welt ganze liter")
- 俄语转写短语(例如 "kater nekiy zabrat dazhe")
安装
通过Composer
{ "require": { "haibrini/password-generator": "~0.5" } }
基本用法
使用默认长度(4个单词)和默认分隔符(空格)生成密码。
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();
上述每个函数都接受长度和分隔符参数。
// would output something like "ritual-error-raise-arab-tail" echo HaiBrini\Password\Generator::generateEn(5, '-');
高级用法
调用静态函数Generator::generate从单词列表生成密码。参数
- wordlists - WordListInterface数组。如果数组比长度短,函数将从数组的开头迭代。
- length - 以单词为单位的密码长度。默认 - 4
- separator - 单词分隔符。默认 - ' '(空格)
示例
echo Generator::generate( [ new HaiBrini\Password\WordList\En(), new HaiBrini\Password\WordList\RuTranslit() ], 5, '-' ); // would output something like "idea-dovod-critic-sever-happy"
单词列表
英文
2048个最常用英文单词的列表。
德文
2048个最常用德文单词的列表(来源)。不包括带变音符号的字母(ä, ö, ü)和eszett(ß)。
俄语转写
2048个最常用俄语单词的转写列表(来源)。不包括难以转写的字母(ь, ъ)。
安全
如果OpenSSL扩展可用,库将使用openssl_random_pseudo_bytes进行随机数生成。
测试
$ php vendor/bin/phpunit
变更日志
0.5.0
- 添加了大写/首字母大写选项
贡献
要添加新语言,请提交一个包含频率词典链接的问题。
欢迎提交pull请求。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。