(PHP 8 >= 8.3.0)
Random\Randomizer::getBytesFromString — Devuelve bytes aleatorios a partir de una cadena
Genera una cadena que contiene bytes aleatorios seleccionados uniformemente de la
string de entrada con la length solicitada.
La probabilidad de que un byte sea seleccionado es proporcional a su parte
de la string de entrada. Si cada byte ocurre
el mismo número de veces, cada byte tiene la misma probabilidad de ser seleccionado.
Una string que contiene el número solicitado de bytes aleatorios tomados de la entrada string.
string está vacía,
se lanzará una ValueError.
length es inferior a 1,
se lanzará una ValueError.
Random\Randomizer::$engine subyacente.
Ejemplo #1 Ejemplo de Random\Randomizer::getBytesFromString()
<?php
$randomizer = new \Random\Randomizer();
printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>Resultado del ejemplo anterior es similar a:
3zsw04eiubcf82jd.example.com
Ejemplo #2 Generar un código aleatorio para la autenticación multi-factor
<?php
// El motor Secure es el motor por omisión, pero se hace explícito, ya que
// los códigos multi-factor son sensibles a la seguridad.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());
echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>Resultado del ejemplo anterior es similar a:
11551-80418-27047-42075
Ejemplo #3 Seleccionar a partir de una cadena con una distribución no uniforme
<?php
$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>Resultado del ejemplo anterior es similar a:
fddacbeaaeaaacaaaaca