密码短语由多个随机单词串联而成,例如
sphere-quartz-bright-flame
创建既安全又易于人类阅读和记忆的凭据。PHP Passphrase,由……创建
尼科·布莱勒
按照以下方式生成这些密码短语
EFF建议的密码短语生成方法
通过组合随机词语
EFF长词表
该软件包模仿了 Bitwarden 的 Rust 实现,并包含内置的 Laravel 支持以及独立的 PHP 使用。
该软件包适用于需要生成临时密码或恢复代码的应用程序,或者任何需要使用人类可读的安全字符串而不是随机字符序列的场景。
主要特点
PHP密码短语包含多个用于生成密码短语的功能:
- Bitwarden 兼容选项 用于字数统计、分隔符、大小写和数字包含
- 使用 EFF 长词表 (7,776 个单词)已打包并缓存,以便快速生成
- 自定义词表 从文件或数组中
- Laravel 集成 包含服务提供者、外观模式、依赖注入和可发布配置
- 独立使用 无需 Laravel 或任何其他框架
入门
通过 Composer 安装软件包:
作曲家
要求
nicobleiler/php-passphrase
Laravel 会自动发现服务提供商。无需额外设置即可开始生成密码短语。
生成密码短语
使用
Passphrase
Laravel 中生成密码短语的 facade:
使用
NicoBleiler\Passphrase\Facades\Passphrase
;// 默认值:3 个单词,连字符分隔符,不大写,不带数字密码短语
::
产生
();// "未经建议的胡茬鱿鱼"// 自定义输出密码短语
::
产生
(
numWords
:
5
,
单词分隔符
:
'~'
,
资本化
:
真的
,
包含数字
:
真的
,(英文):// "雷鬼~Blip~祈祷~塔巴斯科~足球5"
依赖注入
该软件包已注册。
PassphraseGenerator
在 Laravel 容器中作为单例存在,因此您可以将其注入到您的类中:
使用
NicoBleiler\Passphrase\PassphraseGenerator
;班级
身份验证控制器{
民众
功能
__构造
(
私人的
密码短语生成器
$passphrase,){}
民众
功能
临时密码
()
:
细绳{
返回
$this
->
口令
->
产生
(
numWords
:
4
,
资本化
:
真的
,
包含数字
:
真的
,(英文):}}
独立使用
该软件包即使不使用 Laravel 也能运行。创建一个
PassphraseGenerator
直接实例:
使用
NicoBleiler\Passphrase\PassphraseGenerator
;$generator
=
新的
密码短语生成器
();回声
$generator
->
产生
();
// "zone-statue-corporal"
自定义单词列表
这
WordList
该类支持从文件或数组加载单词:
使用
NicoBleiler\Passphrase\WordList
;使用
NicoBleiler\Passphrase\PassphraseGenerator
;// 来自文件(纯文本或 EFF diceware 格式)$wordList
=
词汇表
::
从文件
(
'/path/to/wordlist.txt'
(英文):// 来自数组$wordList
=
词汇表
::
来自数组
([
'比萨'
,
'拂'
,
'汁'
,
'超过'
,
'石英'
,
'火焰'
,
'涡流'
,
'明亮的'
,
'领域'
,]);$generator
=
新的
密码短语生成器
($wordList)回声
$generator
->
产生
(
numWords
:
4
(英文):
在 Laravel 中,您可以通过已发布的配置指向自定义单词列表文件:
php
工匠
供应商:发布
--tag=passphrase-config
然后设置路径
config/passphrase.php
:
'word_list_path'
=>
resource_path
(
'wordlists/my-custom-list.txt'
),
配置
发布的配置文件允许您为所有生成选项设置默认值:
返回
[
'num_words'
=>
3
,
'word_separator'
=>
'-'
,
'大写'
=>
错误的
,
'包含数字'
=>
错误的
,
// null = 捆绑的 EFF 长单词列表
// 或者设置自定义单词列表文件的绝对路径
'word_list_path'
=>
无效的
,];
要了解有关 PHP 密码短语的更多信息并查看源代码,请访问 GitHub 存储库 。





