Accueil >PHP >Référence PHP – fonctions >openssl_random_pseudo_bytes

openssl_random_pseudo_bytes

openssl_random_pseudo_bytes($length, &$strong_result = null)

Renvoie le nombre indiqué d’octets aléatoires cryptographiques. Elle écrit dans $strong_result si le hasard est assez fort. Dès PHP 7, la fonction intégrée random_bytes() est plus simple et plus fiable, elle lève une exception en cas d’échec au lieu de renvoyer des données faibles.

Paramètres

  • $length – le nombre d’octets.
  • &$strong_result – la fonction y écrit true quand les octets sont cryptographiquement forts.

Exemples

$bytes = openssl_random_pseudo_bytes(16, $strong);
echo strlen($bytes); // 16
var_dump($strong); // bool(true)
// un jeton pour un lien de réinitialisation du mot de passe
echo strlen(bin2hex(openssl_random_pseudo_bytes(32))); // 64
// la même chose plus simplement en PHP 7+
echo strlen(bin2hex(random_bytes(32))); // 64

Points d’attention

  • Écrivez le nouveau code avec random_bytes() ; openssl_random_pseudo_bytes() a du sens dans l’ancien code pour PHP 5.
  • N’utilisez jamais rand(), mt_rand() ni uniqid() pour des jetons et des clés – ils peuvent être devinés.

Fonctions associées :
random_bytes()
random_int()
bin2hex()
openssl_encrypt()