如何在 PHP 中生成随机字符串 [附示例]

已发表: 2020-11-24

PHP 在其发布时代表Personalized Home Page 虽然它的进化历程为行业提供了一个替代且更可接受(递归)的定义,即PHP:超文本预处理器,但关于 PHP 的真相是,它仍然比其他任何东西都更能吸收个性化的精神。

今天,PHP 是所有其他领先的服务器配置语言(例如 Microsoft 的 ASP(Active Server Pages))的首选、免费和开源替代品。 这种个性化方面的很大一部分是通过服务器端的 PHP解释器实现的,它可以作为模块守护进程可执行文件来实现

PHP 界面有助于管理以用户为中心的重要数据,例如 UID(唯一标识符)、电子邮件地址、用户名、密码、机密联系信息等等。

许多(如果不是全部)世界领先的动态内容管理系统(包括 CMS 巨头 WordPress)都是基于 PHP 的平台,允许以 PHP 可访问数据库的形式轻松创建和维护用户记录和内容记录.

在本文中,我们将探讨 PHP 的一个特定方面,它使管理员可以轻松填充创建新“用户”所需的所有必填字段,而管理员和用户的干预最少. 为此,管理员必须学习如何生成 PHP 随机字符串,这就是我们将要介绍的内容。

阅读: PHP 项目理念和主题

目录

什么是 PHP 随机字符串?

PHP 随机字符串是唯一的、随机化的字母数字字符串,可在数组中用作文件名、随机 URL 扩展名、密码或身份验证令牌(例如常见的 API 令牌和在 Facebook 的应用程序开发界面上看到的 API 秘密)。

频繁的博主,尤其是那些使用 Medium 等平台发布作品的博主,每当他们发布新的故事或帖子时,都会看到这种随机字符串生成的行为——基本域之后的 URL 扩展通常是发布接口生成的任意字符串。

例如,在 URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation-c37d87e3386b中,URL 的最后部分 ( c37d87e3386b ) 是随机的生成的字符串 PHP 随机字符串的其他简单而重要的参考包括为 WordPress 上的所有新用户帐户生成的“默认”密码。

越来越多的消费者互联网平台也转向使用 PHP 随机字符串,以利用加密的力量来启用“魔术链接”登录。 如果您曾经使用过使用“魔术链接”登录的基于云的服务,那么您已经熟悉 PHP 随机字符串的生成和映射所提供的易用性、效率和增强的安全层。

如何生成 PHP 随机字符串?

手头的任务是编写使用 PHP 生成随机、字母数字和唯一字符串的代码。 有四种不同的方式可以实现这一目标:

  1. 通过使用蛮力(随机索引)——这是迄今为止实现 PHP 随机字符串的最简单但粗略的方法。
  2. 通过使用“散列”函数(PHP 随机字符串的算法生成——与使用蛮力相比,这是一种更智能的方法)
  3. 通过使用内置的uniqid()函数(这很简单,并利用内置的 PHP 功能为元素生成唯一标识符)
  4. 通过使用random_bytes()bin2hex() - 他生成加密安全的随机字节,并为在线彩票、在线扑克游戏和其他需要实时数字生成的平台提供惊人的功能,并在其核心中内置真正的随机化。

另请阅读: PHP 的职业机会

使用蛮力生成 PHP 随机字符串

PHP中随机字符串生成的蛮力概念是最容易理解和最容易实现的。 从广义上讲,蛮力方法可以用四个简单的步骤来解释:

  1. 将所有可能的字符组合在一起并将它们放在一个字符串中(这是字符串中所有允许字符的示例空间存储库)。
  2. 生成一个从 0(零)开始并扩展到字符串长度“-1”的“随机索引”。
  3. 在当前索引位置打印一个字符。
  4. 如果 X 是您的字符串中需要的字符数(您想要的字符串长度),则在整个指令循环中总共重复步骤 1、2 和 3 X 次。

正如您在下面的示例代码实现中所见,这是迄今为止在 PHP 中生成随机字符串的最直接的方法。

示例代码:

<?php

$n=10;

函数 getName($n) {

$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

$随机字符串 = ”;

对于 ($i = 0; $i < $n; $i++) {

$index = rand(0, strlen($characters) – 1);

$randomString .= $characters[$index];

}

返回$随机字符串;

}

回声 getName($n);

?>

必读: PHP 面试问答

使用“散列”函数生成 PHP 随机字符串

PHP 有一些被称为“散列函数”的内置函数,例如md5 ()、 sha1 () 和hash ()。 这些函数可用于“散列”由特定算法定义的字符串,例如“sha1”、“sha256”和“md5”。 在所有这些函数中,参数是一个字符串,输出是一个字母数字散列字符串(如下面的示例代码所示)。

示例代码:

<?php

$str=rand();

$结果 = md5($str);

回显$结果;

?>

使用内置的“uniqid()”函数生成 PHP 随机字符串

PHP 保留了其作为卓越个性化工具的价值,具有特殊的内置函数,例如 uniqid(),可用于生成从当前时间派生的“唯一 ID (UID)”,记录在微秒(也称为“微时间”)。

在默认语法下,uniqid() 函数始终返回一个字符串长度为 13 个字符的唯一字母数字字符串。 您可以使用下面的示例代码来测试 uniqid() 方法的实现。

示例代码:

<?php

$result = uniqid();

回显$结果;

?>

使用 random_bytes() 和 bin2hex() 生成 PHP 随机字符串

到目前为止,这是生成“伪随机”字节然后将它们转换为十六进制格式以在现有随机化中添加一层加密的最先进安全的方式。

第一步是调用内置的random_bytes () 函数来生成密码安全的随机字节。 下一步是调用bin2hex () 函数,该函数将使用此二进制数据(字节数)作为参数,并生成相应的十六进制值作为输出,这是一个完全可用且这在下面的示例代码中得到了更好的解释。

示例代码:

<?php

$n = 20;

$result = bin2hex(random_bytes($n));

回显$结果;

?>

接下来是什么?

upGrad带来了 PHP 编程以及 upGrad全栈开发软件开发专业化的 PG 文凭 一个让你成为全栈开发人员并学习构建一些很棒的应用程序的程序。 这是一个为期 12 个月的广泛计划,包括处理实时项目和任务,还培训 15 种编程语言和工具。 除此之外,它还提供模拟面试和工作协助等全方位的职业支持。

踏上梦想的工作

升级和 IIIT-BANGALORE 的 PG 文凭全栈
了解更多