


Generatore casuale passwordAutore: 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;




