(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::__construct — Crea un nuevo motor xoshiro256**
seed
Cómo se inicializa el estado interno de 256 bits (32 bytes) compuesto por cuatro enteros sin signo de 64 bits
depende del tipo utilizado como seed
.
Tipo | Descripción |
---|---|
null | Rellena el estado con 32 bytes aleatorios generados usando el CSPRNG. |
int |
Rellena el estado con cuatro valores consecutivos generados con el algoritmo SplitMix64
que se inicializó con seed interpretado como un entero sin signo de 64 bits.
|
string | Rellena el estado interpretando un string de 32 bytes como cuatro enteros sin signo de 64 bits en little-endian. |
seed
no es de 32 bytes, se lanzará un ValueError.
seed
consiste en
32 bytes NUL ("\x00"
), se lanzará un ValueError.
Ejemplo #1 Random\Engine\Xoshiro256StarStar::__construct() ejemplo
<?php
// Usa una semilla aleatoria de 256 bits.
$e = new \Random\Engine\Xoshiro256StarStar();
$r = new \Random\Randomizer($e);
?>
Ejemplo #2 Derivando una semilla de un string
<?php
$string = "Mi semilla de string";
// Hashea el string con SHA-256 usando salida binaria para convertir el
// $string en una semilla de 256 bits. Usar el mismo string resultará
// en la misma secuencia de aleatoriedad.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);
echo bin2hex($e->generate()), "\n";
?>
El ejemplo anterior mostrará :
6e013453678388c2