Zum Inhalt
Vigenère-Chiffre
Aus ProgrammingWiki
Archivierte Version vom 2019-08-06T20:35:34+00:00.
Aktuelle Version
var Gitter = { "A" : ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"], "B" : ["B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A"], "C" : ["C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B"], "D" : ["D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C"], "E" : ["E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D"], "F" : ["F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E"], "G" : ["G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F"], "H" : ["H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G"], "I" : ["I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H"], "J" : ["J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I"], "K" : ["K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J"], "L" : ["L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K"], "M" : ["M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L"], "N" : ["N","O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M"], "O" : ["O","P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N"], "P" : ["P","Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"], "Q" : ["Q","R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P"], "R" : ["R","S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q"], "S" : ["S","T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"], "T" : ["T","U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"], "U" : ["U","V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T"], "V" : ["V","W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U"], "W" : ["W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V"], "X" : ["X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W"], "Y" : ["Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X"], "Z" : ["Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y"] }; function encrypt(Eingabe,Key){ var Ausgabe = ""; var KeyIndex = 0; for (var i=0; i < Eingabe.length; i++){ var EingabeBuchstabe = Eingabe[i].toUpperCase(); // Alles was nicht A-Z ist, direkt so ausgeben ohne Verschlüsselung if(EingabeBuchstabe.match(/[^A-Z]/)) { Ausgabe = Ausgabe + EingabeBuchstabe; continue; } var KeyBuchstabe = Key[KeyIndex].toUpperCase(); var AusgabeBuchstabe = Gitter[EingabeBuchstabe][KeyBuchstabe.charCodeAt(0) - 65]; Ausgabe = Ausgabe + AusgabeBuchstabe; KeyIndex++; // wieder vorn anfangen wenn Key aufgebraucht ist if(KeyIndex >= Key.length) KeyIndex = 0; } return Ausgabe; } function decrypt(Eingabe,Key){ var Ausgabe = ""; var KeyIndex = 0; for (var i=0; i < Eingabe.length; i++){ var CryptedBuchstabe = Eingabe[i].toUpperCase(); if(CryptedBuchstabe.match(/[^A-Z]/)) { Ausgabe = Ausgabe + CryptedBuchstabe; continue; } var KeyBuchstabe = Key[KeyIndex].toUpperCase(); for (var k in Gitter){ if(Gitter[k][KeyBuchstabe.charCodeAt(0) - 65] == CryptedBuchstabe){ Ausgabe = Ausgabe + k; break; } } KeyIndex++; // wieder vorn anfangen wenn Key aufgebraucht ist if(KeyIndex >= Key.length) KeyIndex = 0; } return Ausgabe; }
var Ausgabe1 = encrypt("MORGEN ABEND UM NEUN GEHT'S LOS.","EINFACH"); console.log("Verschlüsselt: "+Ausgabe1); console.log("Entschlüsselt: "+decrypt(Ausgabe1,"EINFACH")); // Die Ausgabe als Eingabe bei der anderen Person verwenden var Ausgabe2 = encrypt(Ausgabe1,"SCHWER"); console.log("Erneut verschlüsseln mit Key2."); console.log("Verschlüsselt: "+Ausgabe2); // Die Ausgabe nun entschlüsseln mit Key1 console.log("Nun das Ergebnis entschlüsseln mit Key1."); var Ausgabe3 = decrypt(Ausgabe2,"EINFACH"); console.log("Entschlüsselt: "+Ausgabe3);
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten