Schreibe ein Programm für die Caesar-Verschlüsselung, das einen Text mit einem bestimmten Schlüssel ver- oder entschlüsseln kann. Verwende eine beliebige Programmiersprache!
Für diese Aufgabe benötigst Du folgendes Grundwissen: Caesar-Verschlüsselung
Hier wird eine Lösung in Java erarbeitet. Du kannst die Caesar-Verschlüsselung aber auch in einer Tabellenkalkulations-Software programmieren. Wie das geht lernst du hier.
Hast du eine andere Programmiersprache verwendet? Schreibe einen Kommentar und lass so andere an deinen Ideen teilhaben!
Schritt 1: Methode "verschieben" erstellen
Du kannst die folgende Methode verwenden, um einen einzelnen Großbuchstaben (in Java "char") um eine bestimmte Zahl im Alphabet zu verschieben:
/**
* Verschiebt den Großbuchstaben um die angegebene Verschiebung.
* Nach Z wird wieder bei A begonnen.
* Nur Großbuchstaben von A bis Z erlaubt, keine Leerzeichen,
* keine Sonderzeichen, keine Umlaute.
* @param verschiebung
* @return verschobener Buchstabe
*/
public static char verschieben(char buchstabe, int schluessel)
{
buchstabe+=schluessel;
if (buchstabe>'Z')
buchstabe-=26;
return buchstabe;
}
Schritt 2: Methode "verschluesseln" erstellen
Die Methode hat den Rückgabewert String (sie gibt einen Text zurück), als Parameter benötigst du den Klartext und den Schlüssel. Der Code für die Methode sieht also wie folgt aus:
/**
* Verschlüsselt den Klartext mit dem Schlüssel und gibt den Geheimtext zurück
* @param klartext
* @param schluessel
* @return verschlüsselter text
*/
public static String verschluesseln(String klartext, int schluessel)
{
String geheimtext = ""; // zunächst noch leer
klartext = klartext.toUpperCase(); // in Großbuchstaben umwandeln
for (int i=0; i<klartext.length(); i++)
{
// für alle einzelnen Buchstaben:
// verschieben und an den Geheimtext anhängen
char buchstabe = klartext.charAt(i);
geheimtext += verschieben(buchstabe, schluessel);
}
return geheimtext;
}
Schritt 3: Methode "entschluesseln" erstellen
Wieder bekommt die Methode einen Text als String und einen Schlüssel als Integer-Wert übergeben und gibt einen String zurück, nämlich den entschlüsselten Text. Der Code für die Methode sieht also wie folgt aus:
/**
* Entschlüsselt den Geheimtext mit dem angegebenen Schlüssel
* @param geheimtext
* @param schluessel
* @return entschlüsselter Text
*/
public static String entschluesseln(String geheimtext, int schluessel)
{
return verschluesseln(geheimtext, 26-schluessel);
}
Zusammenfassend: Test im Hauptprogramm
In der Main-Methode schreibst du einen kurzer Text und probierst einmal aus, ob die Ver- und Entschlüsselung funktioniert:
public static void main(String[] args)
{
int schluessel = 3;
String klartext = "JuhuEsfunktioniert";
String geheimtext = verschluesseln(klartext, schluessel);
System.out.println("Klartext: " + klartext + " -> " + geheimtext);
String entschluesselt = entschluesseln(geheimtext, schluessel);
System.out.println("Geheimtext: " + geheimtext + " -> " + entschluesselt);
}