« Applicazione Air per Ruby on Rails | Index | Introduzione alle novità di Actionscript 3 »

um_minilogo.gif Cerchi articoli, tutorial e guide su Photoshop CS3, Flash CS3, Premiere Pro CS3, Actionscript 3, Flex 3 e Adobe AIR, Java e Microsoft Silverlight ?
Scarica gratis UserMatter, il magazine che tratta la User Experience. Nell'ultimo numero trovi anche: Introduzione alla programmazione orientata agli oggetti, Salvare le immagini per il web con una mappatura Alpha

Generare password alfanumeriche in Actionscript 2

Ci sono molti modi per generare dinamicamente delle password alfanumeriche e per altri linguaggi di programmazione (php, .NET, etc..) si trovano numerosi esempi in rete. Trovare in rete soluzioni funzionanti e facilmente adattabili alle proprie necessità in Actionscript 2 non è facile.
Vi propongo una soluzione abbastanza flessibile, il codice presentato è un adattatamento di una funzione PHP trovata su melbournechapter.net.

Andremo a creare due funzioni: una per ottenere dei numeri random interi e una per generare la password era e propria.

La funzione ci permetterà di definire degli array di caratteri da utilizzare per generare la password e di impostare un valore numerico per definire la complessità della generazione.

/**
* Funzione che genera una password basata su set di caratteri personalizzabili
*
* String generaPassword(length, level);
* Impostare un livello alto per utilizzare più gruppi di caratteri
* 1 = solo lettere minuscole
* 2 = solo lettere maiuscole e minuscole
* 3 = stringa alfanumerica
* 4 = stringa alfanumerica con caratteri speciali
*
* @param length Number lunghezza della password
* @param level Number Imposta quali set di caratterei utilizzare
* @return String Nuova password con complessità definita dai parametri impostati
* @author Matteo Ronchi adattata dalla funzione php di: Cameron Manderson
*/

function generaPassword( length:Number , level:Number ):String {

     // definiamo i gruppi di caratteri da utilizzare

     var characterSets:Array = new Array();
     characterSets.push( 'abcdefghijklmnopqrstuvwxyz' );
     characterSets.push( 'ABCDEFGHIJKLMNOPQSRTUVWXYZ' );
     characterSets.push( '01234567890' );
     characterSets.push( '!@#$^*()_' );


     // verifichiamo che il livello di complessità rientri nei limiti

     if(level > characterSets.length) level = characterSets.length;
     else if(level < 1) level = 1;

     // generiamo la password

     var password:String = '';
     for(var i:Number = 0; i < length; i++) {

          var xPointer:Number = randRange( 0, 10000 ) % level;
          var yPointer:Number = randRange( 0, 10000 ) % characterSets[xPointer].length;

          // aggiungiamo un'altro carattere alla password

          password += characterSets[xPointer].substr( yPointer, 1 );
     }

     // restituiamo il valore della password generata
     return password;
}

/*
* funzione per generare numeri interi casuali entro un intervallo definito
*/
function randRange(min:Number, max:Number):Number {
     var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
     return randomNum;
}

TrackBack

TrackBack URL per questo post:
http://blog.augitaly.com/mt-tb.cgi/106

Invia un commento

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Libro Flex 3