openssl_random_pseudo_bytes

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

openssl_random_pseudo_bytesGenera una cadena de bytes pseudo-aleatoria

Descripción

openssl_random_pseudo_bytes(int $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.

Parámetros

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

Valores devueltos

Devuelve el string de bytes generado si se tuvo éxito, o false en caso de error.

Ejemplos

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)

Ver también

  • random_bytes() - Genera bytes seudoaleatorios criptográficamente seguros
  • bin2hex() - Convierte datos binarios en su representación hexadecimal
  • crypt() - Hash de cadenas de un sólo sentido
  • mt_rand() - Genera un mejor número entero aleatorio
  • uniqid() - Generar un ID único