haibrini/password-generator

PHP库,用于生成易于记忆但难以猜测的密码

v0.6.0 2017-10-22 16:34 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:39:27 UTC


README

PHP 7 ready Build Status

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)。请参阅许可证文件获取更多信息。