.: HosiriS :.

Informatica e non solo

Generatore randomico di password

Posted by hosiris su ottobre 8, 2010

Gestite un server a cui accedono una grande varietà di utenze e volete essere sicuri di avere password sicure?
Magari una piccola utility che ne generi alcune randomiche potrebbe rendere la vita un po’ più facile. Cominciamo con il programmare il form che ci permetterà di scegliere la tipologia di password:

<form method="post" action="#">
  Scegli il tipo di password e imposta la lunghezza della password:<br>
  <select name="type">
    <option selected>- - -</option>
    <option value="1">Chiave alfanumerica con caratteri speciali</option>
    <option value="2">Solo numeri</option>
    <option value="3">Numeri e lettere maiuscole e minuscole</option>
    <option value="4">Lettere minuscole</option>
    <option value="5">Lettere maiuscole e minuscole</option>
  </select>
  <input type="text" name="size" size="3">
  <input type="submit" name="crea" value="crea">
</form>

Dopo aver scelto il set di caratteri da usare e la lunghezza della password, verrà avviato il seguente script:

 $lung_pass = $_REQUEST['size'];
 /**
  * Analizzo scelta utente
  */
 switch($_REQUEST['type']){
  case 1:
   for($x=1; $x<=$lung_pass; $x++){
    $c = 33+rand()%93;
    $pass = $pass.chr($c);
   }
   echo '<div>La tua password: <input type=\"text\" value='.$pass.' size='.$_REQUEST['size'].'></div>';
   break;
  case 2:
   for($x=1; $x<=$lung_pass; $x++){
    $c = rand()%10;
    $pass = $pass.$c;
   }
   echo '<div>La tua password: <input type=\"text\" value='.$pass.' size='.$_REQUEST['size'].'></div>';
   break;
  case 3:;case 4:; case 5:
   $i=0;
   while ($i<$lung_pass){
    $c = 33+rand() % 93;
    if($_REQUEST['type']==3){
     if (($c>=48 && $c<=57)||($c>=65 && $c<=90) || ($c>=97 && $c<=122)){
      $pass = $pass.chr($c);
      $i++;
     }
    }
    if($_REQUEST['type']==4){
     if($c>=97 && $c<=122){
      $pass = $pass.chr($c);
      $i++;
     }
    }
    if($_REQUEST['type']==5){
     if (($c>=65 && $c<=90) || ($c>=97 && $c<=122)){
      $pass = $pass.chr($c);
      $i++;
     }
    }
   }
   echo '<div>La tua password: <input type=\"text\" value='.$pass.' size='.$_REQUEST['size'].'></div>';
   break;
 }

Certo, non è niente di stratosferico, ma per passare 5 minuti della mia vita... almeno è tempo ben speso.
Nel mio script ho aggiunto anche la possibilità di inviare le password via mail usando "phpmailer".

Buon divertimento!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: