Benutzer-Werkzeuge

Webseiten-Werkzeuge


j11:verschluesselung:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
j11:verschluesselung:start [2023/06/13 15:02] Martin Pabstj11:verschluesselung:start [2023/06/13 15:08] (aktuell) – [Cäsar-Verschlüsselung] Martin Pabst
Zeile 22: Zeile 22:
 class Cäsar { class Cäsar {
        
-   int keyIndex;+   int keyOffset;
    String alphabet = "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";    String alphabet = "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";
  
    public Cäsar(char key) {    public Cäsar(char key) {
-      this.keyIndex = alphabet.indexOf(key);+      this.keyOffset = alphabet.indexOf(key);
    }    }
  
Zeile 35: Zeile 35:
          char plainCharacter = plaintext.charAt(index);          char plainCharacter = plaintext.charAt(index);
          int charIndex = alphabet.indexOf(plainCharacter);          int charIndex = alphabet.indexOf(plainCharacter);
-         charIndex = (charIndex + keyIndex) % alphabet.length();+         charIndex = (charIndex + keyOffset) % alphabet.length();
  
          ciphertext += alphabet.charAt(charIndex);          ciphertext += alphabet.charAt(charIndex);
Zeile 51: Zeile 51:
          char plainCharacter = ciphertext.charAt(index);          char plainCharacter = ciphertext.charAt(index);
          int charIndex = alphabet.indexOf(plainCharacter);          int charIndex = alphabet.indexOf(plainCharacter);
-         charIndex = (charIndex - keyIndex + alphabet.length()) % alphabet.length();+         charIndex = (charIndex - keyOffset + alphabet.length()) % alphabet.length();
  
          plaintext += alphabet.charAt(charIndex);          plaintext += alphabet.charAt(charIndex);
Zeile 74: Zeile 74:
  
 <script type="text/plain" title="Main.java"> <script type="text/plain" title="Main.java">
-char schlüssel = Input.readChar("Bitte geben Sie den Schlüssel ein:"); +String schlüssel = Input.readString("Bitte geben Sie den Schlüssel ein:"); 
-Cäsar cäsar = new Cäsar(schlüssel);+Vigenere vigenere = new Vigenere(schlüssel);
  
 String plaintext = Input.readString("Welcher Text soll verschlüsselt werden?"); String plaintext = Input.readString("Welcher Text soll verschlüsselt werden?");
-cäsar.encrypt(plaintext);+vigenere.encrypt(plaintext);
  
-String ciphertext = cäsar.encrypt(plaintext);+String ciphertext = vigenere.encrypt(plaintext);
 println("\nVerschlüsselter Text:", Color.chocolate); println("\nVerschlüsselter Text:", Color.chocolate);
 println(ciphertext); println(ciphertext);
  
 println("\nZur Sicherheit nochmals entschlüsselt:", Color.chocolate); println("\nZur Sicherheit nochmals entschlüsselt:", Color.chocolate);
-println(cäsar.decrypt(ciphertext));+println(vigenere.decrypt(ciphertext));
  
  
-class Cäsar {+class Vigenere {
        
-   int keyIndex;+   String key;
    String alphabet = "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";    String alphabet = "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";
  
-   public Cäsar(char key) { +   public Vigenere(String key) { 
-      this.keyIndex alphabet.indexOf(key);+      this.key = key;
    }    }
  
    public String encrypt(String plaintext) {    public String encrypt(String plaintext) {
       String ciphertext = "";       String ciphertext = "";
 +      int keyIndex = 0;
  
       for (int index = 0; index < plaintext.length(); index++) {       for (int index = 0; index < plaintext.length(); index++) {
          char plainCharacter = plaintext.charAt(index);          char plainCharacter = plaintext.charAt(index);
          int charIndex = alphabet.indexOf(plainCharacter);          int charIndex = alphabet.indexOf(plainCharacter);
-         charIndex = (charIndex + keyIndex) % alphabet.length();+ 
 +         int keyOffset = alphabet.indexOf(key.charAt(keyIndex)); 
 + 
 +         charIndex = (charIndex + keyOffset) % alphabet.length();
  
          ciphertext += alphabet.charAt(charIndex);          ciphertext += alphabet.charAt(charIndex);
 +         keyIndex = (keyIndex + 1) % key.length();
       }       }
  
Zeile 115: Zeile 120:
    public String decrypt(String ciphertext) {    public String decrypt(String ciphertext) {
       String plaintext = "";       String plaintext = "";
 +      int keyIndex = 0;
  
       for (int index = 0; index < ciphertext.length(); index++) {       for (int index = 0; index < ciphertext.length(); index++) {
          char plainCharacter = ciphertext.charAt(index);          char plainCharacter = ciphertext.charAt(index);
          int charIndex = alphabet.indexOf(plainCharacter);          int charIndex = alphabet.indexOf(plainCharacter);
-         charIndex = (charIndex - keyIndex + alphabet.length()) % alphabet.length();+ 
 +         int keyOffset = alphabet.indexOf(key.charAt(keyIndex)); 
 +         charIndex = (charIndex - keyOffset + alphabet.length()) % alphabet.length();
  
          plaintext += alphabet.charAt(charIndex);          plaintext += alphabet.charAt(charIndex);
 +         keyIndex = (keyIndex + 1) % key.length();
       }       }
  
j11/verschluesselung/start.1686668539.txt.gz · Zuletzt geändert: 2023/06/13 15:02 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki