Strona główna >PHP >Leksykon PHP – funkcje >openssl_random_pseudo_bytes

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() ani uniqid() – da się je odgadnąć.

Powiązane funkcje:
random_bytes()
random_int()
bin2hex()
openssl_encrypt()