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.

Generatore di password.Js
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;
}