试试 Depot:将超快速的远程 Docker 构建直接集成到你的 Laravel 工作流程中

使用 PHP Passphrase 在 PHP 中生成安全、易记的密码短语

最后更新于 经过

使用 PHP 密码短语图像在 PHP 中生成安全、易记的密码短语

密码短语由多个随机单词串联而成,例如 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 存储库

Yannick Lyn Fatt 的照片

Laravel News 的特约撰稿人和全栈 Web 开发人员。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

访问 Laravel Cloud
银行标志

银行

只需每月 3200 美元,即可聘请一位拥有 4-6 年经验的资深 Laravel 开发人员,为您的项目注入强劲动力。您将获得 160 小时的专属专业服务,并享受 15 天无风险试用。立即预约通话!

银行
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
Laravel Cloud 新增“Markdown for Agents”功能,用于提供 AI 友好型内容图片

Laravel Cloud 新增“Markdown for Agents”功能,以提供对 AI 友好的内容。

阅读文章
Laravel 发布 Nightwatch MCP 服务器,支持 Claude Code 和 AI Agents 图片

Laravel 发布适用于 Claude Code 和 AI 代理的 Nightwatch MCP 服务器。

阅读文章
使用父映像的 Eloquent 模型单表继承

使用父级的 Eloquent 模型单表继承

阅读文章
Laravel Live Denmark 将于 2026 年 8 月重返哥本哈根(图片)

Laravel Live Denmark 将于 2026 年 8 月重返哥本哈根

阅读文章
使用 PHP 密码短语图像在 PHP 中生成安全、易记的密码短语

使用 PHP Passphrase 在 PHP 中生成安全、易记的密码短语

阅读文章
FrankenPHP v1.11.2 发布,CGO 速度提升 30%,GC 速度提升 40%,并包含安全补丁。

FrankenPHP v1.11.2 发布,CGO 速度提升 30%,GC 速度提升 40%,并包含安全补丁。

阅读文章