📜  php 生成固定长度的随机字符串 - PHP (1)

📅  最后修改于: 2023-12-03 15:18:31.655000             🧑  作者: Mango

PHP 生成固定长度的随机字符串

随机字符串在许多开发场景下非常有用,比如生成密码、生成验证码等。生成固定长度的随机字符串并不难,下面提供两种常用的方法。

方法一

使用 PHP 内置的 random_bytes 函数生成随机字符串,并通过 base64_encode 函数转换为字符串返回。

/**
 * 生成固定长度的随机字符串
 *
 * @param int $length 字符串长度
 * @return string
 * @throws Exception
 */
function generateRandomString(int $length): string
{
    return substr(base64_encode(random_bytes($length)), 0, $length);
}

使用方式:

echo generateRandomString(16); // 生成长度为 16 的随机字符串
方法二

借助于 PHP 扩展库 openssl,使用 openssl_random_pseudo_bytes 函数生成随机字符串。

/**
 * 生成固定长度的随机字符串
 *
 * @param int $length 字符串长度
 * @return string
 */
function generateRandomString(int $length): string
{
    return substr(bin2hex(openssl_random_pseudo_bytes(($length + 1) / 2)), 0, $length);
}

使用方式:

echo generateRandomString(16); // 生成长度为 16 的随机字符串

以上两种方法生成的随机字符串字符集包含大写字母、小写字母和数字。

注意:在使用 random_bytes 函数生成随机字符串时,需要运行 PHP 7.0.0 或更高版本。在使用 openssl_random_pseudo_bytes 函数生成随机字符串时,需要打开 PHP 的 openssl 扩展库。