openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytesGenera una cadena pseudo-aleatoria de octetos

Descripción

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

Genera una chaîne de caractères pseudo-aleatoria de octetos, cuya longitud es especificada por el argumento length.

Indica asimismo si el algoritmo fuerte de criptología ha sido utilizado para producir estos octetos pseudo-aleatorios, utilizando el argumento strong_result.

Parámetros

length

El tamaño deseado para la cadena de octetos. Debe ser un número entero positivo inferior o igual a 2147483647. PHP intentará convertir este argumento a un entero no nulo para utilizarlo.

strong_result

Si se proporciona, determina si el algoritmo de criptología utilizado era criptológicamente fuerte, es decir, seguro para ser utilizado con GPG, contraseñas, etc. true si lo es, false en caso contrario.

Valores devueltos

Devuelve la cadena de octetos generada.

Errores/Excepciones

openssl_random_pseudo_bytes() lanza una Exception en caso de error.

Historial de cambios

Versión Descripción
8.0.0 strong_result ahora es nullable.
7.4.0 La función ya no devuelve false en caso de error, sino que lanza una Exception en su lugar.

Ejemplos

Ejemplo #1 Ejemplo openssl_random_pseudo_bytes()

<?php
for ($i = 1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);

echo
"Longitud : Octetos : $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:

Longitud : Octetos : 1 y Hex: 2
string(2) "42"
bool(true)

Longitud : Octetos : 2 y Hex: 4
string(4) "dc6e"
bool(true)

Longitud : Octetos : 3 y Hex: 6
string(6) "288591"
bool(true)

Longitud : Octetos : 4 y Hex: 8
string(8) "ab86d144"
bool(true)

Ver también

  • random_bytes() - Obtiene bytes aleatorios criptográficamente seguros
  • bin2hex() - Convierte datos binarios en representación hexadecimal
  • crypt() - Hash de un solo sentido (indescifrable)
  • random_int() - Obtiene un integer seleccionado de manera uniforme y criptográficamente segura