(PHP 7, PHP 8)
random_bytes — Récupère des octets aléatoires cryptographiquement sécurisés
Génère une chaîne contenant des octets aléatoires uniformément sélectionnés avec la valeur de length
.
Les octets retournés étant choisis de manière totalement aléatoire, la chaîne résultante contiendra probablement des caractères non imprimables ou des séquences UTF-8 invalides. Il peut être nécessaire de l'encoder avant la transmission ou l'affichage.
La randomisation générée par cette fonction est adaptée à toutes les applications, y compris la génération de secrets à long terme, tels que des clés de chiffrement.
Les sources de hasard par ordre de priorité sont les suivantes :
Linux: » getrandom(), /dev/urandom
FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom
Windows (PHP >= 7.2): » CNG-API
Windows: » CryptGenRandom
macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 si CCRandomGenerateBytes est disponible au moment de la compilation): CCRandomGenerateBytes()
macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom
NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom
OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom
DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom
Solaris (PHP >= 8.1): » getrandom(), /dev/urandom
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.
length
La longueur de la chaîne de caractères aléatoire qui doit être retournée en octets; doit être supérieur ou égal à 1
.
Retourne une chaîne de caractères contenant le nombre demandé d'octets cryptographiquement sécurisés.
length
est inférieure à 1
,
une ValueError sera lancée.
Version | Description |
---|---|
8.2.0 | En cas d'échec CSPRNG, cette fonction lancera désormais une Random\RandomException. Auparavant une Exception basique était lancé. |
Exemple #1 Exemple avec random_bytes()
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
Résultat de l'exemple ci-dessus est similaire à :
string(10) "385e33f741"