random_bytes

(PHP 7, PHP 8)

random_bytesGenera bytes seudoaleatorios criptográficamente seguros

Descripción

random_bytes(int $length): string

Genera una cadena de longitud arbitraria de bytes aleatorios criptográficos aptos para usos criptográficos, como la generación de sales, claves o inicialización de vectores.

Las fuentes de aleatoriedad empleadas por esta función son las siguientes:

  • En Windows, se utilizará siempre » CryptGenRandom(). A partir de PHP 7.2.0, se usará siempre » CNG-API.
  • En Linux, se utilizará la llamada al sistema » getrandom(2) si está disponible.
  • En otras plataformas, se utilizará /dev/urandom.
  • Si no están disponibles ninguna de las fuentes citadas anteriormente, se lanzará una Exception.

Nota: Aunque esta función se añadió a PHP en PHP 7.0, hay disponible una » implementación de espacio de usuario para PHP 5.2 hasta 5.6, inclusive.

Parámetros

length

La longitud de la cadena aleatoria que debería ser devuelta en bytes.

Valores devueltos

Devuelve un string que contiene el número solicitado de bytes aleatorios criptográficamente seguros.

Errores/Excepciones

  • Si no se puede encontrar una fuente de aleatoriedad apropiada, se lanzará una Exception.
  • Si se proporcionan parámetros inválidos, se lanzará un TypeError.
  • Si se proporciona un número de bytes para length inválidos, se lanzará un Error.

Ejemplos

Ejemplo #1 Ejemplo de random_bytes()

<?php
$bytes 
random_bytes(5);
var_dump(bin2hex($bytes));
?>

El resultado del ejemplo sería algo similar a:

string(10) "385e33f741"

Ver también