function ZickzackCodieren(Zeichenkette) { var Len = Zeichenkette.length; var Txt1 = ""; var Txt2 = ""; for (var i = 0; i < Len; i++) if (i % 2 == 0) Txt1 = Txt1 + Zeichenkette[i]; else Txt2 = Txt2 + Zeichenkette[i]; return Txt1 + Txt2; } function ZickzackDecodieren(Zeichenkette) { var Len = Zeichenkette.length, N = Math.round(Len / 2); var Txt1 = Zeichenkette.substr(0, N); var Txt2 = Zeichenkette.substr(N); var Txt = ""; for (var i = 0; i < N; i++) { Txt = Txt + Txt1[i]; if (i < Txt2.length) Txt = Txt + Txt2[i]; } return Txt; }
ZickzackCodieren("Brisante Texte müssen verschlüsselt werden!");
ausführen
ZickzackDecodieren("Biat et üsnvrclsetwre!rsneTxemse eshüsl edn");
function Wandeln(Zeichen, Schritt) { var Code = Zeichen.charCodeAt(); if (Code > 64 && Code < 91) { Code = Code + Schritt; while (Code > 90) Code = Code - 26; while (Code < 65) Code = Code + 26; return String.fromCharCode(Code); } else return Zeichen; } function CaesarCodieren(Zeichenkette, Schluesselbuchstabe, Richtung) { var Neukette = ""; Zeichenkette = Zeichenkette.toUpperCase(); Schluesselbuchstabe = Schluesselbuchstabe.toUpperCase(); for (var i = 0; i < Zeichenkette.length; i++) { var Buchstabe = Zeichenkette.substr(i, 1); var Schritt = Schluesselbuchstabe.charCodeAt() - 65; Neukette = Neukette + Wandeln(Buchstabe, Richtung * Schritt); } return Neukette; } function CaesarVerschluesseln(Zeichenkette, Schluesselbuchstabe) { return CaesarCodieren(Zeichenkette, Schluesselbuchstabe, 1); } function CaesarEntschluesseln(Zeichenkette, Schluesselbuchstabe) { return CaesarCodieren(Zeichenkette, Schluesselbuchstabe, -1); }
CaesarVerschluesseln("Hallo Welt!", "B");
CaesarEntschluesseln("IBMMP XFMU!", "B");
function VigenereCodieren(Zeichenkette, Schluessel, Richtung) { var Neukette = ""; var j = 0; Zeichenkette = Zeichenkette.toUpperCase(); Schluessel = Schluessel.toUpperCase(); for (var i = 0; i < Zeichenkette.length; i++) { var Buchstabe = Zeichenkette.substr(i, 1); var Schluesselbuchstabe = Schluessel.substr(j, 1); var Schritt = Schluesselbuchstabe.charCodeAt() - 65; Neukette = Neukette + Wandeln(Buchstabe, Richtung * Schritt); j = (j + 1) % Schluessel.length; } return Neukette; } function VigenereVerschluesseln(Zeichenkette, Schluessel) { return VigenereCodieren(Zeichenkette, Schluessel, 1); } function VigenereEntschluesseln(Zeichenkette, Schluessel) { return VigenereCodieren(Zeichenkette, Schluessel, -1); }
VigenereVerschluesseln("Hallo Welt!", "ABBA");
VigenereEntschluesseln("HBMLO XELU!", "ABBA");