SHARE
TWEET

Vingnere Verschlüsselung Q2

a guest Jan 12th, 2017 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Klasse Caesar.
  3.  */
  4. public class Caesar
  5. {
  6.     private String original, chiffrat, dechiffrat, schlüsselwort;
  7.  
  8.     /**
  9.      * Konstruktor für Objekte der Klasse Caesar
  10.      */
  11.     public Caesar() {
  12.         original = "ORIGINAL";
  13.         chiffrat = "CHIFFRAT";
  14.         dechiffrat = "DECHIFFRAT";
  15.         schlüsselwort = "A";
  16.     }
  17.    
  18.     /**
  19.      * setzt den Schlüssel.
  20.      */
  21.     public void setzeSchluessel(String extschlüssel){
  22.         schlüsselwort = extschlüssel.toUpperCase();
  23.     }
  24.    
  25.     /**
  26.      * setzt den Originaltext.
  27.      */
  28.     public void setzeOriginal(String text){
  29.         original=text.toUpperCase();
  30.     }
  31.    
  32.     /**
  33.      * setzt den Chiffrattext.
  34.      */
  35.     public void setzeChiffrat(String text){
  36.         chiffrat=text.toUpperCase();
  37.     }
  38.    
  39.     /**
  40.      * zeigt das Chiffrat an.
  41.      */
  42.     public String gibChiffrat(){
  43.         return chiffrat;
  44.     }
  45.  
  46.     /**
  47.      * zeigt das Dechiffrat an.
  48.      */
  49.     public String gibDechiffrat(){
  50.         return dechiffrat;
  51.     }
  52.    
  53.     // Übersetzungsmethoden:
  54.    
  55.     /**
  56.      * chiffriert ein einzelnes Zeichen
  57.      * mit dem definierten Schlüsselbuchstaben.
  58.      */
  59.     private char chiffriereEinZeichen(char zeichen, int i) {
  60.         int zahl = (int) zeichen;
  61.         int key  = (int) schlüsselwort.charAt(i%schlüsselwort.length());
  62.         int ergebnis = ((zahl-65 + key-65+78) % 26) + 65;
  63.         return (char) ergebnis;
  64.     }
  65.    
  66.     /**
  67.      * dechiffriert ein einzelnes Zeichen
  68.      * mit dem definierten Schlüsselbuchstaben.
  69.      */
  70.     private char dechiffriereEinZeichen(char zeichen,int i) {
  71.         int zahl = (int) zeichen;
  72.         int key  = (int) schlüsselwort.charAt(i%schlüsselwort.length());
  73.         int ergebnis = ((zahl-65 - (key-65) + 78) % 26) + 65;
  74.         return (char) ergebnis;
  75.     }
  76.    
  77.     /**
  78.      * chiffriert den Original-Text
  79.      * mit dem definierten Schlüsselbuchstaben.
  80.      */
  81.     public void chiffriere() {
  82.         StringBuffer temp = new StringBuffer();
  83.         for (int i=0; i<original.length();i++)
  84.         {
  85.         // Absicherung auf Großbuchstaben: if (original.charAt(i)>64) if (original.charAt(i)<91)
  86.         temp.append(chiffriereEinZeichen(original.charAt(i),i));
  87.         chiffrat=temp.toString();
  88.        }}
  89.        
  90.     /**
  91.      * dechiffriert den Chiffrat-Text
  92.      * mit dem definierten Schlüsselbuchstaben.
  93.      */
  94.     public void dechiffriere() {
  95.         StringBuffer temp = new StringBuffer();
  96.         for (int i=0; i<chiffrat.length();i++)
  97.         {
  98.         // Absicherung auf Großbuchstaben: if (chiffrat.charAt(i)>64) if (chiffrat.charAt(i)<91)
  99.         temp.append(dechiffriereEinZeichen(chiffrat.charAt(i),i));
  100.         dechiffrat=temp.toString();
  101.        }}
  102. }
RAW Paste Data
Top