📅  最后修改于: 2023-12-03 15:18:31.655000             🧑  作者: Mango
随机字符串在许多开发场景下非常有用,比如生成密码、生成验证码等。生成固定长度的随机字符串并不难,下面提供两种常用的方法。
使用 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 扩展库。