JavaScriptsVerschlüsselungen

Caesar-Verschlüsselung

Verschiebt jeden Buchstaben um eine frei wählbare Anzahl Stellen im Alphabet — und knackt den Code auf Wunsch selbst.

Die Caesar-Verschlüsselung ist das älteste überlieferte Verschlüsselungsverfahren: Jeder Buchstabe wird um eine feste Anzahl Stellen im Alphabet weitergeschoben. Bei einer Verschiebung um 3 — die Sueton für Gaius Julius Caesar überliefert — wird aus A ein D, aus B ein E, und am Ende des Alphabets geht es vorn wieder los, aus Z wird C. Der Schlüssel ist also einfach eine Zahl zwischen 1 und 25.

Tragt euren Text ein, stellt die Verschiebung ein und wählt die Richtung. Zum Entschlüsseln braucht ihr nichts weiter zu wissen: Dieselbe Verschiebung rückwärts angewandt stellt den Ursprungstext wieder her. Buchstaben behalten ihre Groß- und Kleinschreibung, Ziffern, Satzzeichen und Umlaute bleiben unangetastet — das ist die klassische Handhabung, weil das lateinische Alphabet zu Caesars Zeiten weder Umlaute noch Kleinbuchstaben kannte.

Der dritte Knopf zeigt, wie schwach das Verfahren ist. „Alle 25 durchprobieren" listet sämtliche Verschiebungen auf — bei nur 25 möglichen Schlüsseln findet das Auge die richtige Zeile in Sekunden. Genau deshalb ist Caesar heute kein Schutz mehr, sondern ein Lehrstück: Ein Verfahren ist nur so stark wie die Zahl seiner möglichen Schlüssel. Wer Caesar mit wechselnden Verschiebungen je Buchstabe betreibt, landet übrigens beim Vigenère-Quadrat, das jahrhundertelang als unknackbar galt.

Die bekannteste Caesar-Variante hat eine eigene Seite: ROT13 verschiebt um genau 13 Stellen und ist damit selbstumkehrend. Ein verwandtes Verfahren, das das Alphabet nicht verschiebt, sondern spiegelt, ist Atbash. Wer wissen will, wie man solche Verfahren ohne Schlüssel knackt, findet das Werkzeug dazu in der Häufigkeitsanalyse.

Verschlüsselungen Baujahr 2026 läuft in deinem Browser

Nur A–Z und a–z werden verschoben. Ziffern, Umlaute und Satzzeichen bleiben stehen.

Script von kostenlose-javascripts.de

So funktioniert das Script

Das ganze Verfahren steckt in einer einzigen Funktion, die Zeichen für Zeichen durch den Text geht. Interessant ist weniger die Verschiebung selbst als die Frage, wie man an den Alphabet-Enden sauber umbricht — und wie man das Entschlüsseln bekommt, ohne eine zweite Funktion zu schreiben.

const schritt = ((stellen % 26) + 26) % 26;

Diese Zeile sieht umständlich aus und ist doch der Kern. % ist der Restwert-Operator: 29 % 26 ergibt 3. Bei negativen Zahlen liefert JavaScript aber ebenfalls ein negatives Ergebnis — -3 % 26 ist -3 und nicht die gewünschte 23. Deshalb wird 26 addiert und noch einmal der Rest gebildet. So wird aus jeder beliebigen Zahl, auch aus −3 oder 100, eine Verschiebung zwischen 0 und 25. Genau dieser Kniff erlaubt es, dieselbe Funktion mit negativem Schlüssel zum Entschlüsseln zu benutzen.

if (zeichen >= "A" && zeichen <= "Z") {
  ergebnis += String.fromCharCode(((nummer - 65 + schritt) % 26) + 65);
}

Hier passiert die eigentliche Arbeit in drei Schritten. nummer ist der Zeichencode: A ist 65, Z ist 90. Durch - 65 wird daraus eine Position von 0 bis 25 — A wird zu 0. Auf diese Position wird verschoben, mit % 26 bei Überlauf vorn wieder angesetzt, und + 65 macht daraus wieder einen Zeichencode. Für Kleinbuchstaben gilt dasselbe mit 97 statt 65. Man rechnet also nie mit Buchstaben, sondern immer mit Positionen im Alphabet.

} else {
  ergebnis += zeichen;
}

Alles, was kein lateinischer Buchstabe ist, wandert unverändert ins Ergebnis. Das ist bequem und zugleich die zweite Schwäche des Verfahrens: Weil Leerzeichen und Satzzeichen erhalten bleiben, sieht man dem Geheimtext die Wortlängen an. „Ich" bleibt ein Dreibuchstabenwort, und der Punkt steht noch am selben Platz.

for (let i = 1; i <= 25; i++) {
  zeilen.push(String(i).padStart(2, " ") + ": " + verschieben(feld.value, -i));
}

Das ist der Knackknopf, ein sogenannter Brute-Force-Angriff: einfach alle Schlüssel durchprobieren. Bei 25 Möglichkeiten ist das in Millisekunden erledigt. padStart(2, " ") stellt der Zahl bei Bedarf ein Leerzeichen voran, damit die Doppelpunkte untereinanderstehen — dafür steht auf der Ausgabefläche white-space: pre-wrap, sonst würde der Browser die Leerzeichen zusammenfassen.

Zum Anpassen: Sollen Umlaute mitverschlüsselt werden, ersetzt man sie am besten vorher durch ae, oe, ue und ss — sie ins Alphabet aufzunehmen würde die 26 in allen Rechnungen zu einer 29 machen und das Verfahren mit fremden Texten unverträglich. Wer statt einer festen Verschiebung eine feste Zuordnungstabelle möchte, ist bei Atbash richtig.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Verschlüsselungen