Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromStringDevuelve bytes aleatorios a partir de una cadena

Descripción

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

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.

Parámetros

string

La chaîne de caractères de entrada a partir de la cual se seleccionan los bytes devueltos.

length

La longitud de la cadena aleatoria chaîne de caractères que debe ser devuelta en bytes; debe ser 1 o más.

Valores devueltos

Una chaîne de caractères que contiene el número solicitado de bytes aleatorios tomados de la entrada string.

Errores/Excepciones

Ejemplos

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

Ver también