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()niuniqid()pour des jetons et des clés – ils peuvent être devinés.
Fonctions associées :
random_bytes()
random_int()
bin2hex()
openssl_encrypt()