martedì 26 luglio 2011

Generare password random in javascript


La funzione accetta in input una lunghezza e quindi genera valori casuali scegliendoli tra una lista di caratteri prestabiliti.
Esempio:


function randomPassword(length)
{
  chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890/=!";
  pass = "";
  for(x=0;x<length;x++)
  {
    i = Math.floor(Math.random() * 65);
    pass += chars.charAt(i);
  }
  return pass;
}



Per testare l’input utente(vogliamo che sia un intero senza virgola) utilizziamo la function isNumeric così definita (cicliamo tra i caratteri per riscontrare che ogni carattere sia valido):


function IsNumeric(sText)

{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
  
   }






La funzione richiamata dal form al click del bottone sarà quindi:

function scriviPassword(){
var length=document.getElementById("txtLength").value;

if(IsNumeric(length))
{
 if(parseInt(length)>6){
 var pass=randomPassword(length);

 document.getElementById("divPassword").innerHTML=pass;
 }
 else
 {
    alert('Attenzione una password deve essere lunga almeno 6 caratteri!!');
   }
}
else
{
alert('Errore, la lunghezza specificata non è un numero!!!');


}

}


 Di seguito l'esempio completo HTML:
Inserire lunghezza password:

Nessun commento:

Posta un commento