Advertisement
Guest User

Java-Geheimschriften

a guest
Nov 26th, 2014
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. //importierung der Scanner-Klasse, inout.class wäre ebenfalls nutzbar gewesen, war aber nicht gefordert.
  2. import java.util.Scanner;
  3.  
  4. public class Geheimschrift {
  5.  
  6.     public static void main(String[] args){
  7.         String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  8.         //Deklaration des Scanners
  9.         Scanner eingabe = new Scanner(System.in);
  10.         System.out.println("Schlüsselwort: ");
  11.         //Eingabe des Schlüssels
  12.         String schluesselEingabe =  eingabe.next();
  13.         System.out.println("Text: ");
  14.         //Eingabe des Textes
  15.         String textEingabe =  eingabe.next();
  16.         System.out.println("Soll der Text verschlüsselt oder entschlüsselt werden? (verschlüsseln=1; entschlüsseln=2): ");
  17.         int anweisung = eingabe.nextInt();
  18.         //Festlegung ob Ver/Entschlüsselt werden soll
  19.         if(anweisung==1){
  20.             System.out.println("Verschlüsselter Text: ");
  21.             //Durch die geforderte Zweitsubstitution muss der Text sowohl mit der Vigenère Methode(Schlüssel), als auch mit der Trithemius Methode(Alphabetisch) durchlaufen werden.
  22.             System.out.println(Verschluesseln(Entschluesseln(textEingabe, alphabet), schluesselEingabe));
  23.         }else{
  24.             System.out.println("Entschlüsselter Text: ");
  25.             System.out.println(Entschluesseln(Verschluesseln(textEingabe, alphabet), schluesselEingabe));
  26.         }
  27.        
  28.     }
  29.     //Verschlüsselung nach Vingenère
  30.     static String Verschluesseln(String text, final String schluessel) {
  31.         String rueckgabeText = "";
  32.         text = text.toUpperCase();
  33.         for (int i = 0, j = 0; i < text.length(); i++) {
  34.             char c = text.charAt(i);
  35.             if (c < 'A' || c > 'Z') continue;
  36.             rueckgabeText += (char)((c + schluessel.charAt(j) - 2 * 'A') % 26 + 'A');
  37.             j = ++j % schluessel.length();
  38.         }
  39.         return rueckgabeText;
  40.     }
  41.   //Entschlüsselung von Vingenère-Text
  42.     static String Entschluesseln(String text, final String schluessel) {
  43.         String rueckgabeText = "";
  44.         text = text.toUpperCase();
  45.         for (int i = 0, j = 0; i < text.length(); i++) {
  46.             char c = text.charAt(i);
  47.             if (c < 'A' || c > 'Z') continue;
  48.             rueckgabeText += (char)((c - schluessel.charAt(j) + 26) % 26 + 'A');
  49.             j = ++j % schluessel.length();
  50.         }
  51.         return rueckgabeText;
  52.     }
  53.    
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement