lucasjkr / password-maker

用于创建随机密码的简单Composer包

dev-release-1.1.0 2017-07-31 11:38 UTC

This package is not auto-updated.

Last update: 2024-09-24 20:26:34 UTC


README

免责声明:请勿在不在您控制的服务器上使用此工具。在我的使用场景中,有时我只需要快速创建一个密码,觉得访问一个网页(托管在我的电脑上)会比“随机”按键更合适。话虽如此,这里有三种方法可供选择,简单、自定义和短语,以下将进行解释。

无论您选择哪种方法,都应确保验证传递给函数的值(在页面控制器或其他任何使用验证的地方)。例如,在所有方法中,都可以设置任何长度的输出 - 我更愿意让您自己决定合适的设置,而不是将其硬编码。

要将此包包含到您的项目中,请选择以下方式之一

  • 从GitHub下载
  • 使用composer require lucasjkr/password-maker dev-master将最新包拉入您的项目

您可以在我的网站上查看演示

www.lucaskrupinski.com/stuff/passwordmaker

版本历史

1.0 - 初始发布,包括简单自定义单词方法

1.1 - 添加分组方法

###简单

随机从提供的字母表中选取字符。要使用此方法,只需告诉它您想要生成的密码长度即可。

use Lucasjkr\PasswordMaker\Simple as Simple;

$password = new Simple();

echo $password->generate(8);

示例输出: CD$\[daJ

###自定义

与简单方法相同,但您可以自己选择大写字母、小写字母、数字和符号的数量。示例

use Lucasjkr\PasswordMaker\Custom as Custom;
$password = new Custom();

$password->uppers  = 4;
$password->lowers  = 4;
$password->numbers = 1;
$password->symbols = 1;

echo $password->generate();

示例输出: K~tPv2WPzm

##短语

这是一个基本的正确马电池夹生成器。给它提供单词来源,告诉它选择多少个随机单词,然后就有密码了。

use Lucasjkr\PasswordMaker\Phrase as Phrase;

$dictionary = '..path to your dictionary file ..';
$password = new Phrase($dictionary);
echo $password->generate(4);

示例输出: groove blare gob treadmill

###短语/大写

将每个单词的首字母大写以提高可读性。

use Lucasjkr\PasswordMaker\Words as Words;

$dictionary = '..path to your dictionary file ..';
$password = new Words($dictionary);
$password->capitalize = true;

echo $password->generate(4);

示例输出: Groove Blare Gob Treadmill

###短语/Leetify

此外,您还可以指定要应用于输出的“Leet Speak”转换,并选择这些替换发生的频率。这可以与capitalize转换结合使用

use Lucasjkr\PasswordMaker\Words as Words;

$dictionary = '..path to your dictionary file ..';
$password = new Words($dictionary);

$password->capitalize = true;
$password->leetify    = true;
$password->chance     = 10;

echo $password->generate(4);

示例输出: `Gro0ve Blare Gob Treadm!ll

请谨慎设置概率过高 - 使用一系列单词作为密码的吸引力之一是它容易记忆,同时具有潜在的暴力破解难度。如果设置得太高,可能会更难记忆,并可能变得更具可预测性(因为目的是引入不确定性 - 如果攻击者知道每个实例的e都会被替换为3,那么您所做的只是让密码更难记忆)

chance设置为100将输出转换为类似compiled braket between dimec0mp!13d 8r4ck37 837w33n d!m3

分组

分组将生成(您猜对了),您选择的字符组,带有您选择的分隔符。您可以选择要生成的分组数量、每个分组中的字符数、使用的分隔符以及组将包含大写字母、小写字母、数字或符号

use Lucasjkr\PasswordMaker\Groups as Groups;
$password = new Groups();

$password->sets     = 3;
$password->size     = 6;
$password->delimter = '-';

然后至少选择一种字符类型

$password->lowers   = true;

示例输出: vtfuks-vudtwd-ukutwv

$password->uppers   = true;
$password->numbers  = true;

示例输出: CTR4QW-QRAJWS-K2BWZ8

有问题?评论?问题?告诉我。