openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytesGénère une chaîne pseudo-aléatoire d'octets

Description

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

Génère une chaîne de caractères pseudo-aléatoire d'octets, dont la longueur est spécifiée par le paramètre length.

Indique également si l'algorithme fort de cryptologie a été utilisé pour produire ces octets pseudo-aléatoires, en utilisant le paramètre strong_result.

Liste de paramètres

length

La taille désirée pour la chaîne d'octets. Doit être un nombre entier positif inférieur ou égal à 2147483647. PHP va tenter de transtyper ce paramètre en un entier non nul pour l'utiliser.

strong_result

Si fourni, détermine si l'algorithme de cryptologie utilisé était cryptographiquement fort, c.-à-d. sécurisé pour être utilisé avec GPG, les mots de passe, etc. true s'il l'est, false sinon.

Valeurs de retour

Retourne la chaîne d'octets générée.

Erreurs / Exceptions

openssl_random_pseudo_bytes() lance une Exception en cas d'échec.

Historique

Version Description
8.0.0 strong_result est désormais nullable.
7.4.0 La fonction ne retourne plus false en cas d'échec, mais lance une Exception à la place.

Exemples

Exemple #1 Exemple openssl_random_pseudo_bytes()

<?php
for ($i = 1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);

echo
"Longueur : Octets : $i et Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo
PHP_EOL;
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Longueur : Octets : 1 et  Hex: 2
string(2) "42"
bool(true)

Longueur : Octets : 2 et Hex: 4
string(4) "dc6e"
bool(true)

Longueur : Octets : 3 et Hex: 6
string(6) "288591"
bool(true)

Longueur : Octets : 4 et Hex: 8
string(8) "ab86d144"
bool(true)

Voir aussi

  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés
  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • crypt() - Hachage à sens unique (indéchiffrable)
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée