Scrivi una parola o una breve frase per generare una password da utilizzare su internet!
Scrivi un testo da cui generare una password |
|
---|---|
Numero chiave di criptazione segreta |
Ho diviso il lavoro in due funzioni, per la regola d'oro del "dividi et impera". Nella prima funzione mi sono concentrato sul ricevere i dati introdotti dall'utente, e quindi prendere il valore nell'Id #decrypted-msg e metterlo tutto in maiuscole graziel al metodo nativo toUpperCase e poi la chiave di cifratura. A questo punto richiamo la seconda funzione che, una volta introdotti i due valori, mi deve restituire la password. La seconda funziona è più complessa: essa infatti deve compiere un ciclo for per tutte le lettere della parola o della frase introdotta dall'utente. Infatti con il comando .charAt() riesco a raccogliere le singole lettere nella posizione di i. Controllo se è una lettera confrontandola con l'alfabeto precedentemente inserito in una variabile apposita e poi converto la lettere in carattere unicode. Utilizzando il valore della chiave di criptazione sposto di tanti posti quanto è il valore della chiave, ed ottengo una lettera nuova. Nel caso il conto andasse oltre alla lettera Z il comando "index - 21" gli intima di tornare indietro di 21 lettere per tornare alla A.
|
var alfabeto = "ABCDEFGHILMNOPQRSTUVZ";
function encryptWeb() {
var psw = $('#decrypted-msg').val().toUpperCase();
var key = parseInt($('#key').val());
var password = encrypt(psw, key);
password = password.replace(/ /g, '');
$('#password').html('La password è ' + password + ' ricorda di non darla a nessuno!');
}
function encrypt(psw, key) {
var password = "";
for(var i = 0; i < psw.length; i++) {
var lettera = psw.charAt(i);
if(alfabeto.indexOf(lettera) >= 0) {
var index = lettera.charCodeAt(0) + key;
if(index > 'Z'.charCodeAt(0)) {
index = index - 26;
}
password += String.fromCharCode(index);
}else{
password += lettera;
}
}
return password;
}
|