openssl_random_pseudo_bytes
openssl_random_pseudo_bytes($length, &$strong_result = null)
Zwraca podaną liczbę kryptograficznie losowych bajtów. Do $strong_result zapisuje, czy losowość jest wystarczająco silna. Od PHP 7 wbudowane random_bytes() jest prostsze i pewniejsze, przy błędzie rzuca wyjątek, zamiast zwrócić słabe dane.
Parametry
- $length – liczba bajtów.
- &$strong_result – funkcja zapisze tu true, jeśli bajty są kryptograficznie silne.
Przykłady
$bytes = openssl_random_pseudo_bytes(16, $strong); echo strlen($bytes); // 16 var_dump($strong); // bool(true) // token do linku resetującego hasło echo strlen(bin2hex(openssl_random_pseudo_bytes(32))); // 64 // to samo prościej w PHP 7+ echo strlen(bin2hex(random_bytes(32))); // 64
Na co uważać
- Nowy kod pisz z
random_bytes();openssl_random_pseudo_bytes()ma sens w starym kodzie dla PHP 5. - Do tokenów i kluczy nigdy nie używaj
rand(),mt_rand()aniuniqid()– da się je odgadnąć.
Powiązane funkcje:
random_bytes()
random_int()
bin2hex()
openssl_encrypt()