Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //importierung der Scanner-Klasse, inout.class wäre ebenfalls nutzbar gewesen, war aber nicht gefordert.
- import java.util.Scanner;
- public class Geheimschrift {
- public static void main(String[] args){
- String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- //Deklaration des Scanners
- Scanner eingabe = new Scanner(System.in);
- System.out.println("Schlüsselwort: ");
- //Eingabe des Schlüssels
- String schluesselEingabe = eingabe.next();
- System.out.println("Text: ");
- //Eingabe des Textes
- String textEingabe = eingabe.next();
- System.out.println("Soll der Text verschlüsselt oder entschlüsselt werden? (verschlüsseln=1; entschlüsseln=2): ");
- int anweisung = eingabe.nextInt();
- //Festlegung ob Ver/Entschlüsselt werden soll
- if(anweisung==1){
- System.out.println("Verschlüsselter Text: ");
- //Durch die geforderte Zweitsubstitution muss der Text sowohl mit der Vigenère Methode(Schlüssel), als auch mit der Trithemius Methode(Alphabetisch) durchlaufen werden.
- System.out.println(Verschluesseln(Entschluesseln(textEingabe, alphabet), schluesselEingabe));
- }else{
- System.out.println("Entschlüsselter Text: ");
- System.out.println(Entschluesseln(Verschluesseln(textEingabe, alphabet), schluesselEingabe));
- }
- }
- //Verschlüsselung nach Vingenère
- static String Verschluesseln(String text, final String schluessel) {
- String rueckgabeText = "";
- text = text.toUpperCase();
- for (int i = 0, j = 0; i < text.length(); i++) {
- char c = text.charAt(i);
- if (c < 'A' || c > 'Z') continue;
- rueckgabeText += (char)((c + schluessel.charAt(j) - 2 * 'A') % 26 + 'A');
- j = ++j % schluessel.length();
- }
- return rueckgabeText;
- }
- //Entschlüsselung von Vingenère-Text
- static String Entschluesseln(String text, final String schluessel) {
- String rueckgabeText = "";
- text = text.toUpperCase();
- for (int i = 0, j = 0; i < text.length(); i++) {
- char c = text.charAt(i);
- if (c < 'A' || c > 'Z') continue;
- rueckgabeText += (char)((c - schluessel.charAt(j) + 26) % 26 + 'A');
- j = ++j % schluessel.length();
- }
- return rueckgabeText;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement