Benutzer:Flo2154/Verschlüsselungsmethoden/ROT13

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

(auch als Caesar-Verschlüsselung bekannt)

Bei dieser Methode werden lediglich die einzelnen Zeichen einer Zeichenkette um 13 Stellen in der ASCII-Tabelle verschoben. Zahlen werden hier nicht berücksichtigt.

Beispiel

function rot_13(str) {
  var keycode = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var new_str = "";

  for(i=0; i<str.length; i++) {
    var codechar = str.substring(i, i + 1);
    var pos = keycode.indexOf(codechar.toUpperCase());

    if(pos >= 0) {
      pos = (pos + keycode.length / 2) % keycode.length;
      codechar = (codechar == codechar.toUpperCase()) ? keycode.substring(pos, pos + 1) : keycode.substring(pos, pos + 1).toLowerCase();
    }
    new_str += codechar;
  }
  return textrot;
}

Erweitern der Funktionalität

Will man auch Zahlen mit der gleichen Methode verschieben, muss man die Funktion ein wenig umschreiben:

function rot_13(str) {
  var alphabeth = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var numbers = "1234567890";
  var new_str = "";

  for(i=0; i<str.length; i++) {
    var codechar = str.substring(i, i + 1);
    var pos = alphabeth.indexOf(codechar.toUpperCase());

    if(pos >= 0) {
      pos = (pos + alphabeth.length / 2) % alphabeth.length;
      codechar = (codechar == codechar.toUpperCase()) ? alphabeth.substring(pos, pos + 1) : alphabeth.substring(pos, pos + 1).toLowerCase();
    }
    else {
      pos = numbers.indexOf(codechar);
      if(pos >= 0) {
        pos = (pos + numbers.length / 2) % numbers.length;
        codechar = numbers.substring(pos, pos + 1);
      }
    }
    new_str += codechar;
  }
  return new_str;
}