adgodev/xkpasswd-php

v1.0.0 2020-03-13 23:00 UTC

This package is auto-updated.

Last update: 2024-09-19 22:20:02 UTC


README

记忆密码生成器,受 xkpasswd.net/s/ 的 PERL 模块启发

主要基于 xkpasswd-node 包。同时向 battery-staple 致敬,以表达启发。

安装

composer require adgodev/xkpasswd-php

用法

您可以将 xkpasswd 作为模块用于您的应用程序。

示例

use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate();

// valuable=bear=difference=53

PasswordGenerator::generate([
    'complexity' => 5,
    'separators' => '#+-'
]);

// addition#wheat#congress#manner#lonely#20

PasswordGenerator::generate([
    'wordList' => 'myWordList.json'
]);

// apple#grape#banana#40

选项

您可以根据 复杂度级别表 指定 complexity 参数。默认为 2。

如果指定了 pattern 参数,将覆盖由复杂度级别派生的 模式

如果提供了 separators,则使用标准集合(参见复杂度级别)代替。每个密码使用一个分隔符,随机从提供的集合中选择。

您可以将 transform 选项设置为 alternateuppercase 以触发大小写转换。

最后,如果您想使用自定义单词列表,可以通过 wordList 函数提供 JSON 文件、文本文件或数组。

示例 默认行为

use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate();

// hide+threw+money+61

示例 指定复杂度

use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate([
    'complexity' => 5
]);

// join=industrial=wide=direction=lungs=16

PasswordGenerator::generate([
    'complexity' => 6
]);

// 57!FIFTHLY!astronauts!AFFECTEDLY!nymphs!TRUSTLESSNESSES!06

示例 指定自定义模式

use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate([
    'pattern' => 'wdwd'
]);

// adjective3solar6

示例 指定自定义单词列表/字典

use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate([
    'wordList' => 'myWordList.json'
]);

// orange.apple.banana
use Adgodev\Xkpasswd\PasswordGenerator;

PasswordGenerator::generate([
    'wordList' => 'myWordList.txt'
]);

// kiwi-strawberry-grape

模式

模式可以由单词、数字和分隔符的任何组合组成。分别使用 w(单词)、d(数字)和 s(分隔符)的首字母在提供给密码生成函数的模式字符串中使用。

例如

  • w 将返回一个单词(即 demographics)。使用 w 表示小写,使用 W 表示大写。
  • wsd 将返回一个单词和一个数字,由一个允许的分隔符分隔(即 storm#7
  • wswsdd 将返回两个单词,后面跟着一个两位数,所有这些都有分隔符(即 delates+dissembled+16

复杂度级别

有 6 个复杂度级别,可以用来提供默认模式以及触发额外功能,例如在单词之间交替大小写和扩展分隔符集合。

此外,级别 6 在单词之间交替大小写。

发布说明

v1.0.0

初始发布