PHP 7 - CSPRNG
In PHP 7, vengono introdotte due nuove funzioni per generare interi e stringhe crittograficamente sicuri in modo multipiattaforma.
random_bytes() - Genera byte pseudo-casuali crittograficamente sicuri.
random_int() - Genera interi pseudo-casuali crittograficamente sicuri.
random_bytes ()
random_bytes () genera una stringa di lunghezza arbitraria di byte casuali crittografici che sono adatti per l'uso crittografico, come quando si generano sali, chiavi o vettori di inizializzazione.
Sintassi
string random_bytes ( int $length )
Parametri
length - La lunghezza della stringa casuale che deve essere restituita in byte.
Valori restituiti
Restituisce una stringa contenente il numero richiesto di byte casuali protetti crittograficamente.
Errori / eccezioni
Se non è possibile trovare una fonte appropriata di casualità, verrà generata un'eccezione.
Se vengono forniti parametri non validi, a TypeError sarà lanciato.
Se viene fornita una lunghezza di byte non valida, verrà generato un errore.
Esempio
<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));
?>
Produce il seguente output del browser:
54cc305593
random_int ()
random_int() genera numeri interi casuali crittografici che sono adatti per l'uso dove i risultati imparziali sono fondamentali.
Sintassi
int random_int ( int $min , int $max )
Parametri
min - Il valore più basso da restituire, che deve essere PHP_INT_MIN o più alto.
max - Il valore più alto da restituire, che deve essere minore o uguale a PHP_INT_MAX.
Valori restituiti
Restituisce un numero intero casuale crittograficamente sicuro compreso tra il minimo e il massimo, inclusi.
Errori / eccezioni
Se non è possibile trovare una fonte appropriata di casualità, un file Exception sarà lanciato.
Se vengono forniti parametri non validi, a TypeError sarà lanciato.
Se max è minore di min, un Error sarà lanciato.
Esempio
<?php
print(random_int(100, 999));
print("");
print(random_int(-1000, 0));
?>
Produce il seguente output del browser:
614
-882