21.3 Eine erste Verschlüsselung (Methode Cäsar)
 

 Cäsar- verschlüsselung

 

VHFUHWFRPPXQLFDWLRQLVDQHHGQRWRQOBIRUPLOLWDUBFRPPDQGHUVDQ
GLQWHOOLJHQFHDJHQWVEXWDOVRRIODUJHFRPPHUFLDODQGLQGXVWULDO
ILUPVUHODBLQJFRQGLGHQWLDOLQIRUPDWLRLQWRGDBVZRUOGSUREDEOB
DWOHDVWQLQHWBSHUFHQWRIVHQVLWLYHRUVHFUHWLQIRUPDWLRQWUDQVP
LWWHGHOHFWURQLFDOOBDULVHVLQWKHODWWHUVHFWRURQHKDVRQOBWRWK
LQNRIWKHIORZRIFUHGLWLQIRUPDWLRQDPRQJYDULRXVILQDQFLDOLQVW
LWXWLRQVWKHWUHPHQGRXVTXDQWLWLHVRIVXFKLQIRUPDWLRQPDNHLWLP
SHUDWLYHWKDWFRQILGHQWLDOLWBEHJXDUDQWHGHGEBDVBVWHPRIHQFUB
WLRQSZKLFKLVERWKFRPSXWDWLRQDOOBIHDVLEOHDQGBHWYHUBKDUGWRG
HFUBSWZKHQLQIRUPDWLRQLVLQWHUFHSWHG

Verstehen Sie den Text?  Die Lösung wird mit den Lösungen der nächsten Hausaufgabe geliefert.

Von Cäsar stammt die Methode, Texte dadurch zu verschlüsseln, dass man die einzelnen Buchstaben um eine bestimmte Anzahl im Alphabet weiterrückt. Das nachfolgende Programm soll demonstrieren, wie man mit den Char-Manipulationen einen Text mit der Methode nach Cäsar verschlüsselt.
 

Übung Wir legen eine Klasse Krypt an, in der wir eine Klassenmethode caesar implementieren. Die Signatur der Methode wird so festgelegt.

String caesar(String original, int schluessel)

Der Methode wird also ein Text übergeben, der mit Hilfe eines Schlüssels nach der Methode Cäsar verschlüsselt wird. Der Verschlüsselte Text wird als String zurückgegeben. Nun zur Spezifikation der Methode. Der übergebene Text wird zunächst in Großbuchstaben 'umgewandelt'. Leerstellen sollen beim Verschlüsseln herausgefiltert werden. Der Wert des Schlüssels schluessel gibt an, um viele Stellen ein Buchstabe im Alphabet nach hinten, also in Richtung 'z' weiterrutscht. 'Rutscht dabei ein Buchstabe aus dem Alphabet' so soll er wieder vorne eintauchen. Ist z.B. der Wert des Schlüssels 3 und der Buchstabe 'Y' geht er beim Verschlüsseln in den Buchstabe 'B' über.
 

Download:
Krypt.java
Die implementierte Methode:

public static String caesar(String original, 
                            int schluessel){
  String geheimText = "";
  int num;
  original = original.toUpperCase();//nur Grossbuchstaben
  if (schluessel >=0){
    for (int i=0; i<original.length(); i++){
      num = original.charAt(i);
      if(num ==' ');             //Filtern der Leerzeichen
      else{
        num+=schluessel;
        if  (num>90) num-=26;    //Zurueck ins Alphabet
        geheimText += (char)num; //Aufbau des Geheimtextes
      }
    }
  }
    
  else{
    for (int i=0; i<original.length(); i++){
      num = original.charAt(i);
      if(num ==' ');              
      else{
        num+=schluessel;
        if  (num<65) num+=26;     
        geheimText += (char)num;  
      }
    }
  }
  return geheimText;
}

Es werden die beiden Fälle erlaubt, die Verschiebung nach rechts und die Verschiebung nach links.
 

Testprogramm
Download:
CaesarTest.java
public class CasearTest {

  public static void main (String[] args) {
    String text = "veni vidi vici";
    System.out.println(Krypt.caesar(text,3));
  }
}
zu Hausaufgaben
zur Startseite www.pohlig.de  (C) MPohlig 2003