lug 15

Pillola php: generare password in modo casuale

  1.  
  2. function password_casuale($lunghezza,$caratteri="abcdefghilmnopqrstuvz123456789"){
  3.  
  4.         if($caratteri == ""){return "";};
  5.        
  6.         $lunghezza_caratteri = strlen($caratteri)-1;
  7.  
  8.         $password = "";
  9.         while(strlen($password) < $lunghezza){
  10.                 $carattere_rnd = rand(0,$lunghezza_caratteri);
  11.                 $password .= $caratteri[$carattere_rnd];
  12.        
  13.         }
  14.        
  15.         return $password;
  16. }
  17.  
  18. echo password_casuale(10);
  19.  

Questa semplice funzione ci permette di generare una password in modo del tutto casuale . Durante la chiamata della funzione occorre specificare la lunghezza della password e se occorre anche i caratteri che si voglione usare. Di defoult sono presenti tutti i numeri compresi tra 0 a 9 e l’intero alfabeto.

Analiziamo insieme il codice:

  1.  
  2. if($caratteri == ""){return "";};
  3.  

La variabile $caratteri è una stringa contenente i caratteri che la password deve contenere. Questa prima riga di codice controlla se la variabile è vuota , in questa caso non occore procedere con l’esecuzione del codice.

  1.  
  2. $lunghezza_caratteri = strlen($caratteri)-1;
  3.  

Memoriziamo in una variabile la lunghezza della variabile $caretteri . Ci servirà come indice massimo per estrarre i caratteri.

  1.  
  2.         while(strlen($password) < $lunghezza){
  3.                 $carattere_rnd = rand(0,$lunghezza_caratteri);
  4.                 $password .= $caratteri[$carattere_rnd];
  5.        
  6.         }
  7.        
  8.         return $password;
  9.  

Questo pezzo di codice è il cuore della funzione . Finchè la lunghezza della password fin ora generata è minore della lunghezza della password che si vuole creare , si aggiunge alla variabile $password un carattere preso a caso da $caratteri.
Quando la password è stata creata viene restituita.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Che cosa ne pensi?! Lascia un commento!