Die Aufgabe
Aufgabe 9.3
Schreiben Sie ein Java-Programm A9_3, mit dem auf einfache Weise Nachrichten verschlüsselt und entschlüsselt werden können. Verwenden Sie dazu den folgenden ROT13-Algorithmus (Rotation 13): Bei der ROT13-Codierung werden die einzelnen Buchstaben im Alphabet um 13 Stellen zyklisch verschoben. Zur Decodierung passiert das gleiche, da das Alphabet 26 Buchstaben enthält.
Reduzieren Sie im Java-Programm das Alphabet auf 26 (lateinische) Buchstaben a bis z und lassen Sie dazu alle Umlaute und Sonderzeichen der deutschen Sprache weg. Betrachten Sie auch lediglich Kleinbuchstaben. Das Programm soll jeweils einen zusammenhängenden Klartext von der Tastatur einlesen, verarbeiten und auf dem Bildschirm ausgeben. Den ROT13-Algorithmus implementieren Sie in einer Methode rot13, welcher der Klartext als Parameter übergeben wird und die den Schlüsseltext als Ergebnis zurückliefert. Testen Sie, ob Ihr Algorithmus auch korrekt decodiert, indem Sie den Schlüsseltext wieder als neuen Text eingeben und den neuen Schlüsseltext mit dem ursprünglichen Klartext vergleichen.
Hinweise:
- Es ist hilfreich, das Alphabet als String mit dem Inhalt „abcdef…yz“ zu deklarieren.
- Sie können auf die String-Funktionen charAt() und indexOf() zurückgreifen.
- Zur Eingabe des Klartextes eignet sich die Methode In.readWord(). Die Eingabe erfolgt dann ohne Hochkommas.
Das Programm liest ein Wort ein, den Klartext, und gibt den Schlüsseltext aus: den verschlüsselten Text. Die Umrechnung steckt in einer Methode rot13: Sie bekommt den Text als Parameter und gibt den neuen Text zurück. Zum Test gibt man den Schlüsseltext noch einmal ein; heraus muss der Klartext kommen.
Verschlüsselt werden nur die 26 Kleinbuchstaben a bis z. Was mit anderen Zeichen passiert, sagt die Aufgabe nicht. Wir lassen sie unverändert: Ziffern, Satzzeichen und auch Großbuchstaben bleiben stehen. Großbuchstaben mitzuverschlüsseln zeigt eine Ergänzung am Ende.
- Das Verfahren an einzelnen Buchstaben klären, auch am Ende des Alphabets.
- Zeigen, warum zweimal ROT13 den Klartext ergibt.
- Die Methode rot13 schreiben: Kopf, Schleife, Position, neuer Buchstabe.
- Andere Zeichen behandeln, dann das Hauptprogramm und der Test.