Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>Decodifica di una stringa</title>
- <meta name="author" content="Christian Marongiu">
- <!-- SCRIPT DI CODIFICA -->
- <script type="text/javascript" src="codifica.js">
- </script>
- <!-- SCRIPT DI DECODIFICA -->
- <script type="text/javascript">
- /*
- ##################################################################
- ## SCRIPT BY: Christian Marongiu ##
- ## INFO: http://chrmar.altervista.org ##
- ## CONTACT: christianmarongiu93@gmail.com ##
- ## ##
- ## Pagina HTML/JS per un'esempio di decodifica di una ##
- ## parola o stringa ##
- ##################################################################
- */
- function decodifica(stringa_codificata) {
- var codice = stringa_codificata;
- var porzione = "";
- var giri = codice.length / 3; // quanti giri devo fare pensando a un taglio ogni 3 caratteri
- var x = 0;
- var decodifica = ""; // inizializzo la stringa decodificata
- var errore = 0; // inizializzo errore
- var msg = "";
- document.getElementById("errore_decodifica").innerHTML= ""; // imposto l'errore vuoto ad ogni inizio
- // della funzione altrimenti mi rimane il msg di errore
- for(i=0;i<giri;i++) { // faccio tanti giri quanti saranno i caratteri (lunghezza codice / 3)
- porzione = codice.substr(x,3);
- // substr usa due paramentri, il primo serve per indicare la posizione di partenza
- // il secondo server per indicare di quante posizioni andare in avanti
- // se ho una stringa "ciao", la posizione 0 corrisponde a c, la 1 corrisponde ad i,
- // la 2 corrisponde ad a, e la 3 corrisponde ad o, perche e' come un array e si parte da 0
- // quindi aumentando il valore di x, come faro' poi, in pratica dico alla funzione
- // di partire da x posizioni dopo rispetto al giro precedente
- // esempio prima parto dalla C e arrivo alla I, poi parto dalla A e arrivo alla O
- // e via dicendo, dipende dai casi
- switch(porzione) {
- // LETTERE MINUSCOLE
- case "001":
- decodifica += "a";
- break;
- case "002":
- decodifica += "b";
- break;
- case "003":
- decodifica += "c";
- break;
- case "004":
- decodifica += "d";
- break;
- case "005":
- decodifica += "e";
- break;
- case "006":
- decodifica += "f";
- break;
- case "007":
- decodifica += "g";
- break;
- case "008":
- decodifica += "h";
- break;
- case "009":
- decodifica += "i";
- break;
- case "010":
- decodifica += "j";
- break;
- case "011":
- decodifica += "k";
- break;
- case "012":
- decodifica += "l";
- break;
- case "013":
- decodifica += "m";
- break;
- case "014":
- decodifica += "n";
- break;
- case "015":
- decodifica += "o";
- break;
- case "016":
- decodifica += "p";
- break;
- case "017":
- decodifica += "q";
- break;
- case "018":
- decodifica += "r";
- break;
- case "019":
- decodifica += "s";
- break;
- case "020":
- decodifica += "t";
- break;
- case "021":
- decodifica += "u";
- break;
- case "022":
- decodifica += "v";
- break;
- case "023":
- decodifica += "w";
- break;
- case "024":
- decodifica += "x";
- break;
- case "025":
- decodifica += "y";
- break;
- case "026":
- decodifica += "z";
- break;
- // LETTERE MAIUSCOLE
- case "101":
- decodifica += "A";
- break;
- case "102":
- decodifica += "B";
- break;
- case "103":
- decodifica += "C";
- break;
- case "104":
- decodifica += "D";
- break;
- case "105":
- decodifica += "E";
- break;
- case "106":
- decodifica += "F";
- break;
- case "107":
- decodifica += "G";
- break;
- case "108":
- decodifica += "H";
- break;
- case "109":
- decodifica += "I";
- break;
- case "110":
- decodifica += "J";
- break;
- case "111":
- decodifica += "K";
- break;
- case "112":
- decodifica += "L";
- break;
- case "113":
- decodifica += "M";
- break;
- case "114":
- decodifica += "N";
- break;
- case "115":
- decodifica += "O";
- break;
- case "116":
- decodifica += "P";
- break;
- case "117":
- decodifica += "Q";
- break;
- case "118":
- decodifica += "R";
- break;
- case "119":
- decodifica += "S";
- break;
- case "120":
- decodifica += "T";
- break;
- case "121":
- decodifica += "U";
- break;
- case "122":
- decodifica += "V";
- break;
- case "123":
- decodifica += "W";
- break;
- case "124":
- decodifica += "X";
- break;
- case "125":
- decodifica += "Y";
- break;
- case "126":
- decodifica += "Z";
- break;
- // SIMBOLI
- case "211":
- decodifica += "!";
- break;
- case "221":
- decodifica += "@";
- break;
- case "231":
- decodifica += "#";
- break;
- case "241":
- decodifica += "$";
- break;
- case "251":
- decodifica += "%";
- break;
- case "261":
- decodifica += "^";
- break;
- case "271":
- decodifica += "&";
- break;
- case "281":
- decodifica += "*";
- break;
- case "291":
- decodifica += "(";
- break;
- case "201":
- decodifica += ")";
- break;
- case "202":
- decodifica += "_";
- break;
- case "203":
- decodifica += "?";
- break;
- case "299":
- decodifica += "+";
- break;
- case "289":
- decodifica += "-";
- break;
- case "279":
- decodifica += "/";
- break;
- case "269":
- decodifica += "\\"; // due barre perche la prima significa ignora
- break;
- case "259":
- decodifica += "=";
- break;
- case "266":
- decodifica += "[";
- break;
- case "263":
- decodifica += "]";
- break;
- case "256":
- decodifica += "{";
- break;
- case "253":
- decodifica += "}";
- break;
- case "233":
- decodifica += ".";
- break;
- case "234":
- decodifica += ",";
- break;
- case "235":
- decodifica += ";";
- break;
- case "236":
- decodifica += ":";
- break;
- case "225":
- decodifica += "<";
- break;
- case "224":
- decodifica += ">";
- break;
- // NUMERI
- case "300":
- decodifica += "0";
- break;
- case "301":
- decodifica += "1";
- break;
- case "302":
- decodifica += "2";
- break;
- case "303":
- decodifica += "3";
- break;
- case "304":
- decodifica += "4";
- break;
- case "305":
- decodifica += "5";
- break;
- case "306":
- decodifica += "6";
- break;
- case "307":
- decodifica += "7";
- break;
- case "308":
- decodifica += "8";
- break;
- case "309":
- decodifica += "9";
- break;
- // Se non e'nessuno dei precedenti casi restituisco un errore
- default:
- errore = 2;
- break;
- }
- x = x + 3; // incremento x di 3 per far partire il giro successivo dal carattere in posizione + 3
- } // fine for
- if(errore == 2) {
- // se errore e' 2 significa che e' stato inserito qualcosa di non valido
- msg = "Inseriti valori non validi nella stringa da decodificare!";
- document.getElementById("errore_decodifica").innerHTML=msg;
- return false;
- }
- if(errore == 0) {
- // se non ci sono errori
- msg = "Stringa da decodificare: " + codice;
- document.getElementById("stringa_da_decodificare").innerHTML=msg;
- msg = "Stringa decodificata: " + decodifica;
- document.getElementById("stringa_decodificata").innerHTML=msg;
- return false;
- }
- } // Fine funzione decodifica()
- /*
- MAPPA DEI CARATTERI
- Lettera minuscola = 0 + numero lettera con due cifre
- Lettera maiuscola = 1 + numero lettera con due cifre
- A = 01
- B = 02
- C = 03
- D = 04
- E = 05
- F = 06
- G = 07
- H = 08
- I = 09
- J = 10
- K = 11
- L = 12
- M = 13
- N = 14
- O = 15
- P = 16
- Q = 17
- R = 18
- S = 19
- T = 20
- U = 21
- V = 22
- W = 23
- X = 24
- Y = 25
- Z = 26
- Per i simboli = 2 + un numero di due cifre per ogni simbolo
- ! = 11
- @ = 21
- # = 31
- $ = 41
- % = 51
- ^ = 61
- & = 71
- * = 81
- ( = 91
- ) = 01
- _ = 02
- ? = 03
- + = 99
- - = 89
- / = 79
- \ = 69
- = = 59
- [ = 66
- ] = 63
- { = 56
- } = 53
- . = 33
- , = 34
- ; = 35
- : = 36
- < = 25
- > = 24
- Per i numeri = 30 + il numero
- 0 = 300
- 1 = 301
- 2 = 302
- 3 = 303
- 4 = 304
- 5 = 305
- 6 = 306
- 7 = 307
- 8 = 308
- 9 = 309
- */
- </script>
- <form name="codifica_stringa" id="codifica_stringa">
- Stringa da codificare: <input type="text" size="96" id="parola_input" />
- <br><br>
- <button onClick="javascript:return codifica(document.getElementById('parola_input').value)">Codifica!</button>
- <br>
- <div id="stringa_da_codificare">
- </div>
- <div id="stringa_codificata">
- </div>
- <div id="errore_codifica">
- </div>
- </form>
- <br>
- <hr />
- <br>
- <form name="decodifica_stringa" id="decodifica_stringa">
- Stringa codificata: <input type="text" size="96" id="codice_input" />
- <br><br>
- <button onClick="javascript:return decodifica(document.getElementById('codice_input').value)">Decodifica!</button>
- <br>
- <div id="stringa_da_decodificare">
- </div>
- <div id="stringa_decodificata">
- </div>
- <div id="errore_decodifica">
- </div>
- </form>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement