Geheimnis-Box
Eine Geheimnis-Box soll entwickelt werden:
SecretBox |
---|
- key: Text - info: Text |
+SecretBox(k:Text, i:Text) +getInfo(k:Text):Text |
public class SecretBox{ private String key,info; // key und info sind nur innerhalb der Klasse zugreifbar public SecretBox(String k, String i){ // Konstruktor kann jeder aufrufen key = k; info = i; } public String getInfo(String k){ // get-Methode kann jeder aufrufen if (key.equals(k)) return info; // wenn key = k return "Falscher Schluessel"; } }
Ein SecretBox-Objekt hat einen Schlüssel-Text und die geheime Information. Nur wenn der Parameter k bei getInfo(k:Text) mit dem gespeicherten Schlüssel key übereinstimmt wird die Info zurück gegeben.
Implementieren und testen Sie die Klasse.
Caesar-Kryptographie
Um die Information zu schützen soll sie verschlüsselt werden mit der Caesar-Verschlüsselung.
Dabei wir die Information "abba" z.B. um drei Buchstaben verschoben zu "deed"
Entwickeln Sie die Hilfs-Operation vorbereiten(s:Text):Text die in Kleinbuchstagen umwandelt und Umlaute ersetzt als Code und als Struktogramm.
Entwickeln Sie die Hilfs-Operation -caesarCode(s:Text):Text die verschlüsselt (+3 Zeichen) als Code und Struktogramm.
Entwickeln Sie die Hilfs-Operation -caesarDeCode(s:Text):Text die den Text wieder entschlüsselt.
Vorgegebener Code
//https://de.wikipedia.org/wiki/Caesar-Verschlüsselung public class Caesar{ static String testNachricht="Wir müssen zu Fuß gehen"; static String testNachricht2="wir schreiben eine klassenarbeit"; static String vorbereiten(String s){ int i; String aus=""; char c; s=s.toLowerCase(); // In Kleinbuchstaben umwandeln // Umlaute entfernen return aus; } static void test(){ String verschl,aus; System.out.println(vorbereiten(testNachricht)); verschl=caesarCode(testNachricht2,13); aus=caesarDeCode(verschl,13); System.out.println(verschl+" "+aus); } static String caesarCode(String s, int n){ int i; String aus =""; // um n verschieben return aus; } static String caesarDeCode(String s, int n){ int i; String aus =""; int c; // um n zurueckschieben return aus; } }
Kryptographie mit Umordnung
Kryptographie mit Buch (One-Time-Pad)