(PHP 5 >= 5.3.0, PHP 7)
openssl_random_pseudo_bytes — Genera una cadena de bytes pseudo-aleatoria
$length
[, bool &$crypto_strong
] ) : string
Genera una cadena de bytes pseudo-aleatoria, con el número de bytes
determinado por el parámetro length
.
También indica si se usó un algoritmo criptográficamente fuerte para producir los
bytes pseudo-aleatorios, y hace esto mediante el parámetro opcional crypto_strong
.
Es raro que este parámetro sea FALSE
, pero algunos sistemas pueden ser antiguos rotos.
length
La longitud de la cadena de bytes deseada. Debe ser un entero positivo. PHP intentará asignar este parámetro a un entero no nulo para usarlo.
crypto_strong
Si se pasó en la función, mantendrá un valor booleano value que determina
si el algoritmo usado fue "criptográficamente fuerte", p.ej., seguro para el uso con GPG,
contraseñas, etc. TRUE
si lo hizo, de otro modo FALSE
Devuelve el string de bytes generado si se tuvo éxito, o FALSE
en caso de error.
Ejemplo #1 Ejemplo de openssl_random_pseudo_bytes()
<?php
for ($i = -1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);
echo "Longitudes: Bytes: $i y Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo PHP_EOL;
}
?>
El resultado del ejemplo sería algo similar a:
Longitudes: Bytes: -1 y Hex: 0 string(0) "" NULL Longitudes: Bytes: 0 y Hex: 0 string(0) "" NULL Longitudes: Bytes: 1 y Hex: 2 string(2) "42" bool(true) Longitudes: Bytes: 2 y Hex: 4 string(4) "dc6e" bool(true) Longitudes: Bytes: 3 y Hex: 6 string(6) "288591" bool(true) Longitudes: Bytes: 4 y Hex: 8 string(8) "ab86d144" bool(true)