(PHP 8 >= 8.3.0)
Random\Randomizer::getBytesFromString — Obtém bytes aleatórios de uma string de origem
Gera uma string contendo bytes aleatórios selecionados uniformemente a partir da
string
de entrada com o comprimento solicitado em length
.
A chance de um byte ser selecionado é proporcional à sua participação
na string
de entrada. Se cada byte ocorrer
a mesma quantidade de vezes, cada byte terá a mesma probabilidade de ser selecionado.
Uma string contendo o número solicitado de bytes aleatórios retirados da string
de entrada.
string
estiver vazio,
um ValueError será gerado.
length
for menor que 1
,
um ValueError será gerado.
Random\Randomizer::$engine
subjacente.
Exemplo #1 Exemplo de Random\Randomizer::getBytesFromString()
<?php
$randomizer = new \Random\Randomizer();
printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>
O exemplo acima produzirá algo semelhante a:
3zsw04eiubcf82jd.example.com
Exemplo #2 Gerando um código aleatório para autenticação multifator
<?php
// O mecanismo Secure é o padrão, mas o tornamos explícito porque
// códigos multifatoriais são sensíveis à segurança.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());
echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>
O exemplo acima produzirá algo semelhante a:
11551-80418-27047-42075
Exemplo #3 Selecionando de uma string com distribuição não uniforme
<?php
$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>
O exemplo acima produzirá algo semelhante a:
fddacbeaaeaaacaaaaca