Vigenere Chiffre Programmierung

Diskutiere Vigenere Chiffre Programmierung im Allgemeine Java-Themen Bereich.
D

Denise92

Hallo liebe Community,

gibt es unter uns vielleicht Leute, die mir den Code Beispiel erklären können? Ich bin seit Tagen total verzweifelt und versuche heruszufindenwie es programmiert wurde. Ich hoffe ihr könnt mir helfen.

Java:
import java.util.Scanner;

public class vigenere {

    public static char[] crypt(char[] plain, char[] key, int direction) {

        char[] output = new char[plain.length];
        for (int i = 0; i < plain.length; i++) {
            //Verschluesseln
            if (direction == 1) {
                //Umrechnen für ASCII Tabelle
                int result = (plain[i] + key[i % key.length]-194) % 26 ;
                output[i] = (char) (result+97);
            }
            //Entschluesseln
            else if (direction == 0){
                int result;
                if (plain[i] - key[i % key.length] < 0)
                {
                    result = (plain[i]- key[i % key.length]+130) %26 + 97;
                }
                else
                {
                    result = (plain[i] - key[i % key.length]) % 26 +97;
                }
                output[i] = (char) result;
            }
        }
        return output;
    }

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Klartext eingeben:");
        String plaintext = scanner.nextLine(); //ohne Umlaute
        plaintext = plaintext.toLowerCase();
        char[] plain = plaintext.toCharArray();

        System.out.println("Schluesselwort eingeben:");
        String keyword = scanner.nextLine();
        keyword = keyword.toLowerCase();
        char[] key = keyword.toCharArray();

        char[] encrypted = crypt(plain, key, 1);
        System.out.println("Verschluesselter Text:");
        System.out.println(encrypted);

        char[] decrypted = crypt(encrypted, key, 0);
        System.out.println("Entschluesselter Text:");
        System.out.println(decrypted);
        scanner.close();
    }
}
 
Zuletzt bearbeitet von einem Moderator:
MoxxiManagarm

MoxxiManagarm

Was verstehst du daran nicht? Also was ist dir schon klar und was nicht? Hast du dich unabhängig von dem Code mal mit dieser Verschlüsselungstechnik beschäftigt?
 
D

Denise92

Ja mit der Verschlüsselungstechnik habe ich mich auseinandergesetzt. Den Prinzip habe ich verstanden. Jedoch fehlen mir die Kenntnisse den Code zu verstehen.
 
MoxxiManagarm

MoxxiManagarm

Der Einstiegspunkt des Programms ist die main-Methode. Von dort werden Text und Schlüssel von der Konsole eingelesen, dann verschlüsselt (direction=1) und wieder entschlüsselt (direction=0). Mehr passier in der main nicht. Das Ver- und entschlüsseln wird durch die Methode crypt durchgeführt. Je nach direction wird ein anderes Stück Code ausgeführt. Persönliche Meinung: besser wären 2 Methoden namentlich encrypt und decrypt anstatt Crypto mit direction, das treibt die Komplexität der Methode nur unnötig in die Höhe. Die einzelnen Zeichen werden dann durchiteriert und anhand des Schlüssels "verschoben".
 
Thema: 

Vigenere Chiffre Programmierung

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben