random_bytes
(PHP 7, PHP 8)
random_bytes — Get cryptographically secure random bytes
Descripción
As the returned bytes are selected completely randomly, the resulting string is likely
to contain unprintable characters or invalid UTF-8 sequences. It may be necessary to
encode it before transmission or display.
The randomness generated by this function is suitable for all applications, including
the generation of long-term secrets, such as encryption keys.
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
-
The length of the random string that should be returned in bytes; must be 1
or greater.
Valores devueltos
A string containing the requested number of cryptographically
secure random bytes.
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.
-
If the value of
length
is less than 1
,
a ValueError will be thrown.
Ejemplos
Ejemplo #1 random_bytes() example
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
El resultado del ejemplo
sería algo similar a: