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:01] Martin Pabstj11:verschluesselung:start [2023/06/13 15:08] (aktuell) – [Cäsar-Verschlüsselung] Martin Pabst
Zeile 1: Zeile 1:
 ====== Verschlüsselung ====== ====== Verschlüsselung ======
 +===== Cäsar-Verschlüsselung =====
 <HTML> <HTML>
  
Zeile 21: 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 34: 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 50: 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);
 +      }
 +
 +      return plaintext;
 +
 +      
 +   }
 +
 +
 +}</script>
 +</div>
 +
 +</HTML>
 +
 +
 +===== Vigenère-Verschlüsselung =====
 +<HTML>
 +
 +<div class="java-online" style="height: 70vh; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Vigenere'}">
 +
 +<script type="text/plain" title="Main.java">
 +String schlüssel = Input.readString("Bitte geben Sie den Schlüssel ein:");
 +Vigenere vigenere = new Vigenere(schlüssel);
 +
 +String plaintext = Input.readString("Welcher Text soll verschlüsselt werden?");
 +vigenere.encrypt(plaintext);
 +
 +String ciphertext = vigenere.encrypt(plaintext);
 +println("\nVerschlüsselter Text:", Color.chocolate);
 +println(ciphertext);
 +
 +println("\nZur Sicherheit nochmals entschlüsselt:", Color.chocolate);
 +println(vigenere.decrypt(ciphertext));
 +
 +
 +class Vigenere {
 +   
 +   String key;
 +   String alphabet = "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ ";
 +
 +   public Vigenere(String key) {
 +      this.key = key;
 +   }
 +
 +   public String encrypt(String plaintext) {
 +      String ciphertext = "";
 +      int keyIndex = 0;
 +
 +      for (int index = 0; index < plaintext.length(); index++) {
 +         char plainCharacter = plaintext.charAt(index);
 +         int charIndex = alphabet.indexOf(plainCharacter);
 +
 +         int keyOffset = alphabet.indexOf(key.charAt(keyIndex));
 +
 +         charIndex = (charIndex + keyOffset) % alphabet.length();
 +
 +         ciphertext += alphabet.charAt(charIndex);
 +         keyIndex = (keyIndex + 1) % key.length();
 +      }
 +
 +      return ciphertext;
 +
 +   }
 +
 +
 +   public String decrypt(String ciphertext) {
 +      String plaintext = "";
 +      int keyIndex = 0;
 +
 +      for (int index = 0; index < ciphertext.length(); index++) {
 +         char plainCharacter = ciphertext.charAt(index);
 +         int charIndex = alphabet.indexOf(plainCharacter);
 +
 +         int keyOffset = alphabet.indexOf(key.charAt(keyIndex));
 +         charIndex = (charIndex - keyOffset + alphabet.length()) % alphabet.length();
 +
 +         plaintext += alphabet.charAt(charIndex);
 +         keyIndex = (keyIndex + 1) % key.length();
       }       }
  
j11/verschluesselung/start.1686668471.txt.gz · Zuletzt geändert: 2023/06/13 15:01 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki