Genera password in PHP

Subodh Poudel 8 luglio 2021
  1. Usa la funzione rand() per selezionare un indice di array casuale per generare una password casuale in PHP
  2. Usa le funzioni openssl_random_pseudo_bytes() e bin2hex() per generare password casuali in PHP
  3. Usa le funzioni substr() e str_shuffle() per generare password casuali da una data stringa alfanumerica in PHP
Genera password in PHP

Introdurremo un metodo per generare password casuali in PHP utilizzando la funzione rand(). Questo metodo utilizza la combinazione di lettere minuscole e maiuscole e numeri per formare una password. La funzione rand() restituisce l’intero casuale, che è l’indice dell’array, per scegliere la combinazione di password.

Introdurremo anche un altro metodo per generare password casuali in PHP utilizzando le funzioni openssl_random_pseudo_bytes() e bin2hex().

Questo articolo dimostrerà un altro metodo per generare password casuali in PHP utilizzando le funzioni substr() e str_shuffle(). Questo metodo utilizza anche i valori alfanumerici forniti nel programma per formare una password casuale.

Usa la funzione rand() per selezionare un indice di array casuale per generare una password casuale in PHP

Possiamo usare la funzione rand() per generare una password casuale in PHP. La funzione rand() restituisce un numero intero casuale dall’intervallo dei parametri forniti. La funzione accetta due valori interi come parametri. Possiamo definire una stringa di alfabeti e numeri da cui possiamo combinare la password. Il numero casuale indicizza l’array per selezionare alfabeti o numeri casuali. Possiamo eseguire il bucle della funzione rand() per creare la password della lunghezza desiderata.

Ad esempio, creare una variabile $comb e memorizzare la stringa che comprende tutti gli alfabeti minuscoli e maiuscoli e i numeri da 0 a 10 come abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890. Crea un array $pass con la funzione array(). Memorizza la lunghezza della stringa $comb nella variabile $combLen. Crea un cicli for e ripeti il ​​bucle otto volte. All’interno del bucle, utilizzare la funzione rand() con 0 e la variabile $combLen come parametri e memorizzare il valore nella variabile $n. Quindi, assegna il $comb[$n] all’array $pass. Fuori dal bucle, converti l’array nella stringa usando la funzione implode().

Nell’esempio seguente, generiamo una password casuale dalla combinazione memorizzata nella variabile $comb. La funzione rand() preleva un numero intero casuale da 0 alla lunghezza della stringa $comb. L’intero casuale viene utilizzato come indice per prelevare il valore alfanumerico casuale dalla combinazione. Il bucle viene eseguito otto volte e seleziona otto valori alfanumerici casuali e infine forma una password casuale. Consulta il Manuale PHP per saperne di più sulla funzione rand().

Codice di esempio:

# php 7.x
<?php
 $comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
 $pass = array(); 
 $combLen = strlen($comb) - 1; 
 for ($i = 0; $i < 8; $i++) {
     $n = rand(0, $combLen);
     $pass[] = $comb[$n];
 }
 print(implode($pass)); 
?>

Produzione:

aPsQWlzh

Usa le funzioni openssl_random_pseudo_bytes() e bin2hex() per generare password casuali in PHP

Possiamo usare la funzione openssl_random_pseudo_bytes() per generare una stringa di byte pseudo-casuale. Possiamo specificare un valore intero come parametro della funzione per definire la lunghezza del numero desiderato di byte da generare. La funzione bin2hex() converte i dati binari nelle rappresentazioni esadecimali. Possiamo usare questa funzione per convertire la stringa di byte generata casualmente nella rappresentazione esadecimale e formare una password. Questo metodo genera la password casuale comprendente i valori alfanumerici.

Ad esempio, crea una variabile $bytes e assegnala con la funzione openssl_random_pseudo_bytes(). Specificare 4 come parametro della funzione. Crea un’altra variabile, $pass, e scrivici la funzione bin2hex(). Specificare la variabile $bytes nella funzione. Stampa la variabile $pass usando l’istruzione echo.

Nell’esempio seguente, il 4 nella funzione openssl_random_pseudo_bytes() indica il numero di byte da generare casualmente. La funzione bin2hex() converte i byte in equivalenti esadecimali. La password generata casualmente contiene la lunghezza di 8 perché la conversione esadecimale di 4 byte di stringa risulta in 8. Consulta il Manuale PHP per saperne di più sulla funzione bin2hex().

Codice di esempio:

#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>

Produzione:

ed203eef

Usa le funzioni substr() e str_shuffle() per generare password casuali da una data stringa alfanumerica in PHP

Possiamo usare il metodo str_shuffle() per mescolare casualmente la stringa data. La funzione mescola la stringa di una combinazione di lettere minuscole e maiuscole insieme ai numeri da 0 a 9. Pertanto, forma una permutazione di tutti i casi possibili. Possiamo usare la funzione substr() per la stringa mischiata per scegliere una parte dei suoi caratteri. Quindi, possiamo generare una password casuale.

Ad esempio, crea una variabile $comb e memorizza il valore della stringa abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789. Usa str_shuffle() per mescolare la variabile $comb e memorizzarla nella variabile $shfl. Quindi, usa la funzione substr() e la variabile $shfl, 0 e 8 come parametri. Memorizza la funzione in una variabile $pwd e stampa la variabile.

Nell’esempio seguente, utilizziamo lo stesso insieme di valori alfanumerici del primo metodo. La password generata casualmente è formata da questi valori alfanumerici. La funzione str_shuffle() mescola il valore alfanumerico e crea una permutazione casuale. Abbiamo usato 0 e 8 nella funzione substr() per selezionare gli otto caratteri dal primo indice della permutazione mescolata. Pertanto, genera una password casuale di otto cifre.

Esempio di codice:

#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>

Produzione:

jenZq3lY
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn