Bergervei/Javascript-Verschlüsselungsverfahren

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Symmetrische Verschlüsselungsverfahren ==

=== Cäsar-Verfahren ===

<code id="4f02160f2a930">
function Wandeln(Zeichen, Schritt) {
 var Code = Zeichen.charCodeAt(0);
 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(0) - 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="4f02160f2a996">
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(0) - 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>