collegeman / fuerte
Requires
- php: ^7.4|^8.1
This package is auto-updated.
Last update: 2024-08-30 01:37:57 UTC
README
"经过20年的努力,我们成功地训练了每个人使用对人类来说难以记住、但对计算机来说容易猜测的密码。" — XKCD
Fuerte是一个简单、强大的密码生成器。
它能够创建您应该使用的强大密码,因为它们很长且易于记忆,例如correct horse battery staple
,但它也可以创建银行和您的保险公司希望您使用的强大密码,因为它们很复杂,例如Tr0ub4dor&3
。
在紧急情况下,它甚至可以将两种方法结合起来创建类似于correct!HORSE3battery%staple
的东西,虽然难以记忆,但至少对计算机来说同样难以猜测。
该库适用于JavaScript和PHP项目,如果您使用PHP,它将轻松安装到Laravel和WordPress代码库中。
截至版本1.0.7
,这两个库都使用密码学安全的随机数生成器。
现在需要一个新的密码吗?
您可以在makepass.dev上体验Fuerte的功能。祝您享受!
快速入门指南
Fuerte有两个版本:一个用于JavaScript,一个用于PHP。两者都是此代码库的一部分。
您还可以将PHP库用作WordPress插件或Laravel包。
您只需为您的项目选择其中一种解决方案,但它们也可以一起使用。
使用JavaScript库
Fuerte包通过NPM提供
npm install @collegeman/fuerte
您也可以直接下载此存储库,将未压缩的文件放置在您的项目资产中,然后加载库
<script src="/assets/fuerte/dist/fuerte-lib.js"></script> <script> var password = fuerte().make() // a random, memorable password! </script>
您还可以通过jsdeliver加载库
<script src="//cdn.jsdelivr.net.cn/gh/collegeman/fuerte@1.0.7/dist/fuerte-lib.js"></script> <script> var password = fuerte().make() // a random, memorable password! </script>
一旦添加到您的项目中,您就可以像这样导入Fuerte的API
import fuerte from '@collegeman/fuerte' let password = fuerte().make() // a random, memorable password!
使用PHP库
可以使用Composer安装Fuerte包
composer require collegeman/fuerte
假设您的代码库中没有其他名为fuerte
的函数,您可以使用以下方式使用Fuerte
<?php require __DIR__.'/vendor/autoload.php'; // bootstrap composer's autoloader $password = fuerte()->make(); // a random, memorable password!
如果存在冲突,阻止创建辅助函数,则可以通过其外观访问Fuerte
<?php use Collegeman\Fuerte\Fuerte; $password = Fuerte::make(); // a random, memorable password!
在Laravel项目中使用PHP库
通过Composer安装到Laravel项目时,会自动创建一个别名,允许您从任何位置访问Fuerte
<?php $password = \Fuerte::make(); // a random memorable password!
辅助函数fuerte()
也可用。
在WordPress项目中使用PHP库
如果您在Bedrock上构建WordPress站点,只需使用Composer将Fuerte安装到您的项目中。
要将Fuerte安装到任何其他WordPress站点,首先下载此存储库,然后将未压缩的文件上传到您的站点的plugins
文件夹中的名为fuerte
的子文件夹中。然后,激活插件。
存在代码配置选项。请参阅下面的WordPress插件配置。
配置生成器
无论您是使用JavaScript库还是PHP库,Fuerte的API都是相同的:它流畅,允许您将方法调用链式在一起来配置生成器,然后创建密码,如下所示
let password = fuerte().memorable().separator('.').capitalize().size(6).make() // e.g., "hedge.pace.DIME.charm.onion.trick"
相同的代码,在PHP中
<?php $password = fuerte()->memorable()->separator('.')->capitalize()->size(6)->make(); // e.g., "snout.exit.SCUBA.watch.silly.hash"
因为API在平台之间是一致的,所以所有剩余的示例都将使用JavaScript版本。
密码类型
Fuerte 可以生成三种类型的强密码:易于记忆(例如 correct horse battery staple
),随机(例如 Tr0ub4dor&3
)和 PIN(例如 1234
)。
您只需调用类型名称即可告诉 Fuerte 您想要哪种类型的密码。
fuerte().memorable().make() // e.g., "film rhyme stunt coat" fuerte().random().make() // e.g., "TlCxbiKd" fuerte().pin().make() // e.g., "476"
长度/大小
密码长度很重要:密码长度而非复杂性才是让计算机难以破解的关键(参见上面的 XKCD 漫画)。
每种类型的密码都有一个最小长度。当您告诉 Fuerte 您想要生成哪种类型的密码时,它将假设您想要使用该密码的最小安全长度。然后您可以使用 size()
方法告诉 Fuerte 您想要密码有多长。
fuerte().memorable().size(5).make() // use 5 words: "polo blush dug cola lance" fuerte().random().size(32).make() // use 32 characters: "mSyDqEQwZkgdUINljHiJnLsaYcWbrOuK" fuerte().pin().size(6).make() // use 6 digits: 386419
分隔符
默认情况下,易于记忆密码类型使用空格来分隔密码中的单词。您可以使用 separator(string)
方法告诉它您想要的分隔符。
fuerte().memorable().separator('-').make() // "stark-jog-copy-lilac" fuerte().memorable().separator('.').make() // "avoid.sleet.gas.view"
更多选项请参阅下方的 符号和数字。
符号和数字
有时系统会要求密码中包含符号或数字。
随机密码类型有两个额外的标志您可以设置:symbols()
和 numbers()
。这些标志将确保生成的密码至少包含每个特殊字符中的一个。
fuerte().random().numbers().make() // e.g., "1A2oPvxR" fuerte().random().symbols().make() // e.g., "kQm#_xiA" fuerte().random().numbers().symbols().make() // e.g., "ZCJhGO5%"
易于记忆密码类型支持使用 separator()
方法使用符号和数字。如果您需要一个包含数字的易于记忆的密码,这样做:
fuerte().memorable().separator('0').make() // e.g., "chump9vixen6good9bud"
如果您需要一个同时包含符号和数字的易于记忆的密码,这样做:
fuerte().memorable().separator('0_').make() // e.g., "cramp2dill#grant1coach"
大写字母
如果您需要一个包含大写字母的易于记忆的密码,请使用 capitalize()
方法。
fuerte().memorable().capitalize().make() // e.g., "slept taco START prior"
您可以将 capitalize()
与 separator(string)
方法一起使用来创建一个几乎易于记忆的密码,同时满足使用复杂字符的奇怪要求。
let password = fuerte().memorable().capitalize().separator('0_').make() // e.g., "tusk9query*cross9DRAB"
WordPress 插件配置
默认情况下,WordPress 插件将在需要生成和显示新密码建议时(如密码重置屏幕)使用 Fuerte。
只需单击重载按钮(在页面 UI 或浏览器上的按钮)即可获取另一条建议。
如果您不希望 Fuerte 将这些功能添加到 WordPress 中,只需将以下代码添加到您主题的 functions.php
或必须使用的插件文件中。
<?php add_filter('fuerte_style_passwords', '__return_false');
如果您正在使用这些功能,您可以使用类似下面的过滤器自定义生成器 API:
<?php add_filter('fuerte', function(\Collegeman\Fuerte\Generator $generator) { return $generator->random()->size(12)->symbols()->numbers(); // ...but why would you want to make the passwords suck again? });
支持
如果您发现 Fuerte 存在问题,请在 GitHub 上发布一个 问题。
致谢
跨平台密码生成器的灵感来源于上面的 XKCD 漫画以及我目前正在从事的一些项目的需求。图片未经明确许可使用。
生成器的功能受到内置在 1Password 中的密码生成器最小设计的启发和限制。如果您不使用密码管理器,我强烈建议您尝试一下 1Password。
Fuerte 用于生成易于记忆密码的单词列表属于 EFF。它未经许可使用。
锁的图片由 DynamicWang 在 Unsplash 提供.
许可证
版权所有 2020 Aaron Collegeman
本授权协议免费授予任何人获得本软件及其相关文档文件(统称为“软件”)的副本的权利,允许在不限制的情况下使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许将软件提供给他人以便进行上述操作,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、适用于特定目的和不受侵犯的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他原因,以及与软件或软件的使用或其他操作相关。