PHP 7 - CSPRNG

W PHP 7 wprowadzono dwie nowe funkcje do generowania kryptograficznie bezpiecznych liczb całkowitych i łańcuchów w sposób wieloplatformowy.

  • random_bytes() - Generuje bezpieczne kryptograficznie bajty pseudolosowe.

  • random_int() - Generuje bezpieczne kryptograficznie pseudolosowe liczby całkowite.

random_bytes ()

random_bytes () generuje ciąg kryptograficznych losowych bajtów o dowolnej długości, które są odpowiednie do użytku kryptograficznego, na przykład podczas generowania soli, kluczy lub wektorów inicjalizacyjnych.

Składnia

string random_bytes ( int $length )

Parametry

  • length - długość losowego ciągu, który powinien zostać zwrócony w bajtach.

Zwracane wartości

  • Zwraca ciąg zawierający żądaną liczbę zabezpieczonych kryptograficznie losowych bajtów.

Błędy / wyjątki

  • Jeśli nie można znaleźć odpowiedniego źródła losowości, zostanie zgłoszony wyjątek.

  • Jeśli podano nieprawidłowe parametry, a TypeError zostanie wyrzucony.

  • Jeśli zostanie podana nieprawidłowa długość bajtów, zostanie zgłoszony błąd.

Przykład

<?php
   $bytes = random_bytes(5);
   print(bin2hex($bytes));
?>

Tworzy następujące dane wyjściowe przeglądarki -

54cc305593

random_int ()

random_int() generuje kryptograficzne losowe liczby całkowite, które są odpowiednie do użycia tam, gdzie krytyczne są obiektywne wyniki.

Składnia

int random_int ( int $min , int $max )

Parametry

  • min - najniższa wartość do zwrócenia, która musi być PHP_INT_MIN lub wyżej.

  • max - Najwyższa wartość do zwrócenia, która musi być mniejsza lub równa PHP_INT_MAX.

Zwracane wartości

  • Zwraca zabezpieczoną kryptograficznie losową liczbę całkowitą z zakresu od min do max włącznie.

Błędy / wyjątki

  • Jeśli nie można znaleźć odpowiedniego źródła losowości, plik Exception zostanie wyrzucony.

  • Jeśli podano nieprawidłowe parametry, a TypeError zostanie wyrzucony.

  • Jeśli max jest mniejsze niż min, plik Error zostanie wyrzucony.

Przykład

<?php
   print(random_int(100, 999));
   print("");
   print(random_int(-1000, 0));
?>

Tworzy następujące dane wyjściowe przeglądarki -

614
-882