Caesar-Verschlüsselung: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
 
Zeile 8: Zeile 8:


Beispiel für eine Verschiebung um drei Zeichen (d.h. Schlüssel = 3):
Beispiel für eine Verschiebung um drei Zeichen (d.h. Schlüssel = 3):
<code>
<code>
  klar:    a b c d e f g h i j k l m n o p q r s t u v w x y z
  klar:    a b c d e f g h i j k l m n o p q r s t u v w x y z
  geheim:  d e f g h i j k l m n o p q r s t u v w x y z a b c
  geheim:  d e f g h i j k l m n o p q r s t u v w x y z a b c
</code>
</code>


Aus dem Klartext <code>hallo</code> ergibt sich so der Geheimtext <code>kdoor</code>.
Aus dem Klartext <code>hallo</code> ergibt sich so der Geheimtext <code>kdoor</code>.


=Implementierung=
=Implementierung=
<code>
<code>
  public class Caesar {
  public class Caesar {
   
   
Zeile 50: Zeile 50:
     }
     }
  }
  }
</code>
</code>

Aktuelle Version vom 23. Januar 2022, 17:54 Uhr


Die Caesar-Verschlüsselung ist ein einfaches Verschlüsselungsverfahren, das auf der Verschiebung von Buchstaben basiert.

Bei der Verschlüsselung wird jeder Buchstabe des Klartexts auf einen Geheimtextbuchstaben abgebildet. Diese Abbildung ergibt sich, indem man die Zeichen eines geordneten Alphabets um eine bestimmte Anzahl nach rechts verschiebt. Die Anzahl der verschobenen Zeichen bildet den Schlüssel.

Beispiel für eine Verschiebung um drei Zeichen (d.h. Schlüssel = 3):


klar:    a b c d e f g h i j k l m n o p q r s t u v w x y z
geheim:  d e f g h i j k l m n o p q r s t u v w x y z a b c

Aus dem Klartext hallo ergibt sich so der Geheimtext kdoor.

Implementierung


public class Caesar {

   public static String verschluesseln(String pText, int pCode){
       pText = pText.toLowerCase();
       String ergebnis = "";
       for(int i=0; i<pText.length(); i++){
           char buchstabe = pText.charAt(i);
           buchstabe += pCode;
           if(buchstabe > 'z'){
               buchstabe -= 26;
           }
           ergebnis += buchstabe;
       }
       return ergebnis;
   }
  
   public static String entschluesseln(String pText, int pCode){
       // statt pCode Buchstaben nach rechts zu gehen...
       // ... kann man auch (26-pCode) Buchstaben nach links gehen!
       String ergebnis = verschluesseln(pText, 26 - pCode);
       return ergebnis;
   }
  
   public static void main(String[] args) {
       int schluessel = 3;
       String nachricht = "hallo";
       System.out.println("nachricht: "+nachricht);
       String verschluesselt = verschluesseln(nachricht, schluessel);
       System.out.println("verschluesselt: "+verschluesselt);
       String entschluesselt = entschluesseln(verschluesselt, schluessel);
       System.out.println("entschluesselt: "+entschluesselt);
   }
}