Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString从源字符串获取随机字节

描述

public Random\Randomizer::getBytesFromString(string $string, int $length): string

生成一个字符串,其中包含从输入 string 中均匀选择的随机字节,长度为 length

字节被选择的概率与其在输入 string 中所占份额成正比。如果每个字节出现的次数相同,那么每个字节被选择的概率都相同。

参数

string

从中选择返回字节的 string

length

要返回的随机 string 的长度(以字节为单位);必须为 1 或更大。

返回值

一个 string,包含从输入 string 中获取的指定数量的随机字节。

错误/异常

示例

示例 #1 Random\Randomizer::getBytesFromString() 示例

<?php
$randomizer
= new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

上面的示例将输出类似于以下内容

3zsw04eiubcf82jd.example.com

示例 #2 生成用于多因素身份验证的随机代码

<?php
// Secure 引擎是默认引擎,但我们明确指定,因为
// 多因素代码对安全至关重要。
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo
implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

上面的示例将输出类似于以下内容

11551-80418-27047-42075

示例 #3 从具有非均匀分布的字符串中选择

<?php
$randomizer
= new \Random\Randomizer();

echo
$randomizer->getBytesFromString('aaaaabcdef', 20);
?>

上面的示例将输出类似于以下内容

fddacbeaaeaaacaaaaca

参见

添加注释

用户贡献注释

此页面没有用户贡献注释。
To Top