PHP 8.1.15 Released!

random_bytes

(PHP 7, PHP 8)

random_bytesGet cryptographically secure random bytes

Descripción

random_bytes(int $length): string

Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.

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.

Historial de cambios

Versión Descripción
8.2.0 In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was 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:

string(10) "385e33f741"

Ver también

add a note

User Contributed Notes 1 note

up
5
ccbsschucko at gmail dot com
4 years ago
<?php
   
function str_rand(int $length = 64){ // 64 = 32
       
$length = ($length < 4) ? 4 : $length;
        return
bin2hex(random_bytes(($length-($length%2))/2));
    }
   
   
var_dump(str_rand());
   
// d6199909d0b5fdc22c9db625e4edf0d6da2b113b21878cde19e96f4afe69e714
?>
To Top