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