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

Random 包生成加密安全的随机值

最后更新于 经过

Random 包生成加密安全的随机值图像

随机套餐 由 Stephen Rees-Carter 开发,通过简单的 PHP 帮助程序包生成一系列不同格式的加密安全随机值。创建此包的原因如下:

我在安全审计期间(尤其是在较旧的代码库上)经常遇到的问题是不安全的随机性,通常是在需要安全性的地方。它通常使用某种形式 rand() ,经常注入内部 md5() 生成随机散列,结合 str_shuffle() 生成新密码,或用于制作一次性密码 (OTP) rand(100_000, 999_999)

问题是 rand() 不是加密安全的,也不是 mt_rand() , mt_srand() , str_shuffle() , array_rand() ,或 PHP 中可用的其他不安全函数。我们不能简单地声明这些方法不安全,然后放下麦克风,然后走开。相反,我们需要提供安全的替代方案 - 所以而不是简单地说“不要使用 rand() 这样”,我们可以说“这是一个您可以使用的安全方法”!

以下是您可以使用此随机包执行的操作的一些示例:

随机一次性密码(数字固定长度 OTP)

生成 $length 位数的随机数字一次性密码 (OTP):

$otp = 随机的 :: 一次性密码 整数 $length): 细绳 ;

对于生成 SMS 或电子邮件验证码的 OTP 很有用。

随机字符串

生成 $length 字符的随机字符串,其中包括启用的字符类型中的字符。默认情况下,它将随机选择字符,并且不保证存在任何特定的字符类型。如果您需要包含每个字符之一,则可以设置 $requireAll = true。

// 主要方法
$字符串 = 随机的 :: 细绳
整数 $长度 = 32 ,
布尔值 更低 = 真的 ,
布尔值 上部 = 真的 ,
布尔值 $数字 = 真的 ,
布尔值 符号 = 真的 ,
布尔值 $requireAll = 错误的
): 细绳 ;

字符串方法还为常见用例提供了很好的包装器:

// 仅限随机字母
字母 = 随机的 :: 字母 整数 $长度 = 32 ): 细绳 ;
// 随机字母数字(字母和数字)标记字符串
$token = 随机的 :: 令牌 整数 $长度 = 32 ): 细绳 ;
// 随机字母、数字和符号(即随机密码)。
$密码 = 随机的 :: 密码 整数 $长度 = 16 , 布尔值 $requireAll = 错误的 ): 细绳 ;
// 随机字母数字标记字符串,各块由破折号分隔,易于阅读和输入。
$密码 = 随机的 :: 虚线 整数 $长度 = 25 , 细绳 分隔符 = '-' , 整数 $chunkLength = 5 , 布尔值 混合大小写 = 真的 ): 细绳 ;

随机排列数组、字符串或集合

安全地洗牌数组、字符串或 Laravel 集合,可以选择保留键。

洗牌 = 随机的 :: 随机播放
数组|字符串| \ 照亮 \ 支持 \ 收藏 $values,
布尔值 $preserveKeys = 错误的
): 数组|字符串| \ 照亮 \ 支持 \ 收藏 ;

和更多

参观 官方包 GitHub 页面上的完整详细信息,还可以查看 公告帖

埃里克·L·巴恩斯摄

Eric 是 Laravel News 的创建者,自 2012 年以来一直报道 Laravel 相关内容。

归档于:
立方体

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 入门套件
Tailwind CSS v4.2 图片新增颜色

Tailwind CSS v4.2 新增颜色

阅读文章
Laravel 12.52.0 图片中的工厂 makeMany() 方法

Laravel 12.52.0 中的工厂 makeMany() 方法

阅读文章
Laravel 添加了官方 Svelte + Inertia Starter Kit 图片

Laravel 新增官方 Svelte + Inertia 入门套件

阅读文章
Laravel 中的 MongoDB 向量搜索:查找无法查询的图像

Laravel 中的 MongoDB 向量搜索:查找无法查询的内容

阅读文章
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 服务器。

阅读文章