(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
.
Ejemplo #1 Ejemplo de Random\Randomizer::getBytesFromString()
<?php
$randomizer = new \Random\Randomizer();
printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>
El resultado del ejemplo sería algo 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));
?>
El resultado del ejemplo sería algo 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);
?>
El resultado del ejemplo sería algo similar a:
fddacbeaaeaaacaaaaca