Archivio
Opzioni


Ricerca














PHP


PHP Generatore casuale password
  Autore: Lemoeb

Funzione che genera un id o una password in maniera casuale.





/***********************************/
/*    Generazione casuale ID       */
/***********************************/

function Generatore() {

 //Defininione e valorizzazione array delle frasi
 $frasi=array ('itorinonhannogenitori','provadipassword','testnumero2','nelmezzodelcammindinostravita',
 'unonessunocentomila','loscheletronellarmadio','Nosferatueilmaestrodellanotte',
 'sediconutellatucosapensi','mapoiperchehoscrittoquestoscript','odioilmonopoliodimicosoft',
 'adoroimangagiapponesi','stephenkingeungrandescrittore','lamiaragazzamenadamorire',
 'selamuccafamupercheiltopononfato','maisettenanieranoveramentesette','ilsignoredeglianellinonsivedemai',
 'costantinounuomosenzasenso','sperochequestefrasipossanobastare','altrimentisenepossonoaggiungerealtre');
			 
 //Definizione e inizializzazione delle variabili di password
 //e carattere casuale
 $s_password="";
 $carattere="";
 $totchar="10"; //numero totale caratteri casuali

 //Funzione di generazione seme per il numero random
 //utilizzando i microsecondi
 function crea_seme() 
 {
   list($usec, $sec) = explode(' ', microtime());
   return (float) $sec + ((float) $usec * 100000);
 }

 //Inizializzazione generatore numeri random
 mt_srand(crea_seme());  
					 
 //Generazione numero casuale per recupero frase dall'array
 $valore_chiave=mt_rand(0,count($frasi)-1);
					
 //Ciclo per la generazione della password
 //Il numero di caratteri conponenti la password
 //vanno specificati nella variabile $totchar
 for ($i=0;$i<=$totchar;$i++)
 {
   //Genere un valore casuale sulla base della 
   //lunghezza della frase selezionata
   $valorecasuale = mt_rand(0,strlen($frasi[$valore_chiave]));
			   
   //Se viene incontrato uno spazio, questo viene sostituito con il carattere "_"
   if (substr($frasi[$valore_chiave],$valorecasuale,1)==" ")
   {
 	$carattere="_";
   }
   else
   {
     //Generazione di numero casuale per decidere se il carattere
     //deve essere convertito in maiuscolo
     if (mt_rand(0,10)>5)
     {
       //Conversione del carattere prelevato dalla frase in maiuscolo
       $carattere=strtoupper(substr($frasi[$valore_chiave],$valorecasuale,1));	 
	 }
	 //Sostituzione di alcune lettere con numeri
 	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="a") {$carattere="4";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="i") {$carattere="1";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="e") {$carattere="3";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="o") {$carattere="0";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="g") {$carattere="6";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="s") {$carattere="2";}
	 elseif (substr($frasi[$valore_chiave],$valorecasuale,1)=="z") {$carattere="5";}
	 else {$carattere=substr($frasi[$valore_chiave],$valorecasuale,1);}
 					   
    }
			 
    $id.=$carattere;
 } 

 //composizione della password
 return $id;

}
Basta richiamare la funzione per ottenere il risultato:
$id = Generatore();

echo $id;