random_bytes

(PHP 7)

random_bytesGénère des octets pseudo-aléatoire cryptographiquement sécurisé

Description

random_bytes ( int $length ) : string

Génère une chaîne de caractères de longueur arbitraire d'octets aléatoires cryptographiques qui convient à un usage cryptographique, comme lors de la génération de sels, de clés ou de vecteurs d'initialisation.

La source des données aléatoires utilisée pour cette fonction est :

  • Sous Windows, » CryptGenRandom() sera toujours utilisé. À partir de PHP 7.2.0 c'est » CNG-API qui sera toujours utilisé à la place
  • Sous Linux, l'appel système » getrandom(2) sera utilisé si disponible.
  • Sous les autres plate-formes, /dev/urandom sera utilisé.
  • Si tout ce qui précède n'est pas disponible, alors une Exception sera émise.

Note: Bien que cette fonction ait été ajoutée en PHP 7.0, une » implementation en espace utilisateur est disponible pour PHP 5.2 jusqu'à 5.6, inclus.

Liste de paramètres

length

La longueur de la chaîne de caractères aléatoire qui doit être retourné en octets.

Valeurs de retour

Retourne une chaîne de caractères contenant le nombre demandé d'octet aléatoire cryptographiquement sécurisé.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Exception sera émise.
  • Si un paramètre invalide est fourni, une exception de type TypeError sera émise.
  • Si une longueur length invalide d'octet est fournit, une Error sera lancé.

Exemples

Exemple #1 Exemple avec random_bytes()

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

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(10) "385e33f741"

Voir aussi

  • random_int() - Génère des nombres entiers pseudo-aléatoire cryptographiquement sécurisé
  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
  • bin2hex() - Convertit des données binaires en représentation hexadécimale