Bergervei/Javascript-Verschlüsselungsverfahren
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
== Einfache Verschlüsselungsverfahren ==
=== Zickzack-Verfahren ===
<code id="5bccfc2fea985">
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;
}
</code>
<run id="5bccfb730cc0d">
ZickzackCodieren("Brisante Texte müssen verschlüsselt werden!");
</run>
<run id="5bccfb730cc74">
ZickzackDecodieren("Biat et üsnvrclsetwre!rsneTxemse eshüsl edn");
</run>
== Symmetrische Verschlüsselungsverfahren ==
=== Cäsar-Verfahren ===
<code id="5bccfb730cb08">
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);
}
</code>
<run id="4f02160f2aa0c">
CaesarVerschluesseln("Hallo Welt!", "B");
</run>
<run id="4f02160f2aa6a">
CaesarEntschluesseln("IBMMP XFMU!", "B");
</run>
=== Vigenère-Verfahren ===
<code id="5bccfb730cb94">
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);
}
</code>
<run id="4f02160f2aac5">
VigenereVerschluesseln("Hallo Welt!", "ABBA");
</run>
<run id="4f02160f2ab21">
VigenereEntschluesseln("HBMLO XELU!", "ABBA");
</run>