Moin Leute,
ich denke mein Fehler ist wahrscheinlich für Euch zum Lachen. Für meine Facharbeit soll ich zwei historische Chiffren schreiben. Da ich zu einfachen Erklärung als erste Chiffre die Caesar-Chiffre gewählt habe versuche ich diese nun zu programmieren. Bei meinem bisherigen Ansatz wird nach Eingabe des Schlüssels erneut gefragt welche Chiffre ich benutzen soll. Ehrlich gesagt bin ich etwas ratlos wieso ich nicht den chiffrierten Text sehe sondern das. Vielleicht übersehe ich auch etwas unübersehbares, aber vielleicht könnt Ihr mir helfen. (Ja, ich weiß es ist nicht kompakt und schön programmiert, aber meine Lehrerin meint, man soll erkennen, dass ich es geskriptet habe und es nicht nur "Copy-Pasted" ist.
[CODE lang="java" title="Main"]import java.util.*;
public class Main {
public static Scanner sc = new Scanner(System.in);
public static int eingabe;
public static boolean errEingabe = true;
public static void main(String[] args) {
System.out.println("Facharbeit Kryptographie von ");
System.out.println();
System.out.println("Wählen Sie folgend wie Sie Ihren Klartext mittels historischer Chiffre chiffrieren wollen:");
while(errEingabe = true) {
System.out.println("(1) Caesar-Chiffre (2) Chiffre");
eingabe = sc.nextInt();
if (eingabe == 1) {
errEingabe = false;
encryptCaes.enterKlartext();
}
else if (eingabe == 2) {
errEingabe = false;
}
else {
System.out.println("Ihre Eingabe ist ungültig. Wählen Sie bitte:");
}
}
}
}
[/CODE]
[CODE lang="java" title="encryptCaes"]import java.util.*;
public class encryptCaes {
public static Scanner ScCaes = new Scanner(System.in);
public static String wordBE;
public static int wordLength;
public static int key;
public static char[] WE;
public static char[] encryptedWE;
public encryptCaes() {
}
public static void encrypt(int pKey) {
for(int j=0;j<WE.length;j++) {
if(WE[j]<'A') {
}
else if(WE[j]>'@'&& WE[j]<'a') {
encryptedWE[j] = (char) (WE[j] + pKey);
if (encryptedWE[j]>'z') {
encryptedWE[j] = (char) (encryptedWE[j]-'a');
}
}
else if(WE[j]>'_') {
}
}
System.out.println();
for(int i =0; i<encryptedWE.length;i++) {
System.out.print(encryptedWE);
}
}
public static void enterKlartext() {
System.out.println("Caeser Verschlüsselung / Chiffrierung");
System.out.println("");
System.out.println("Bitte geben Sie folgend einen kurzen Satz ohne Umlaute und Sonderzeichen ein");
wordBE = ScCaes.next();
wordLength = wordBE.length();
char charArray[] = wordBE.toCharArray();
WE = new char [charArray.length];
encryptedWE = new char [charArray.length];
for(int i=0;i<charArray.length;i++) {
WE = charArray;
}
System.out.println("Geben Sie folgend den Schlüssel zur Verschlüsselung ein: ");
key = ScCaes.nextInt();
encryptCaes.encrypt(key);
}
}
[/CODE]
Vielen Dank !
ich denke mein Fehler ist wahrscheinlich für Euch zum Lachen. Für meine Facharbeit soll ich zwei historische Chiffren schreiben. Da ich zu einfachen Erklärung als erste Chiffre die Caesar-Chiffre gewählt habe versuche ich diese nun zu programmieren. Bei meinem bisherigen Ansatz wird nach Eingabe des Schlüssels erneut gefragt welche Chiffre ich benutzen soll. Ehrlich gesagt bin ich etwas ratlos wieso ich nicht den chiffrierten Text sehe sondern das. Vielleicht übersehe ich auch etwas unübersehbares, aber vielleicht könnt Ihr mir helfen. (Ja, ich weiß es ist nicht kompakt und schön programmiert, aber meine Lehrerin meint, man soll erkennen, dass ich es geskriptet habe und es nicht nur "Copy-Pasted" ist.
[CODE lang="java" title="Main"]import java.util.*;
public class Main {
public static Scanner sc = new Scanner(System.in);
public static int eingabe;
public static boolean errEingabe = true;
public static void main(String[] args) {
System.out.println("Facharbeit Kryptographie von ");
System.out.println();
System.out.println("Wählen Sie folgend wie Sie Ihren Klartext mittels historischer Chiffre chiffrieren wollen:");
while(errEingabe = true) {
System.out.println("(1) Caesar-Chiffre (2) Chiffre");
eingabe = sc.nextInt();
if (eingabe == 1) {
errEingabe = false;
encryptCaes.enterKlartext();
}
else if (eingabe == 2) {
errEingabe = false;
}
else {
System.out.println("Ihre Eingabe ist ungültig. Wählen Sie bitte:");
}
}
}
}
[/CODE]
[CODE lang="java" title="encryptCaes"]import java.util.*;
public class encryptCaes {
public static Scanner ScCaes = new Scanner(System.in);
public static String wordBE;
public static int wordLength;
public static int key;
public static char[] WE;
public static char[] encryptedWE;
public encryptCaes() {
}
public static void encrypt(int pKey) {
for(int j=0;j<WE.length;j++) {
if(WE[j]<'A') {
}
else if(WE[j]>'@'&& WE[j]<'a') {
encryptedWE[j] = (char) (WE[j] + pKey);
if (encryptedWE[j]>'z') {
encryptedWE[j] = (char) (encryptedWE[j]-'a');
}
}
else if(WE[j]>'_') {
}
}
System.out.println();
for(int i =0; i<encryptedWE.length;i++) {
System.out.print(encryptedWE);
}
}
public static void enterKlartext() {
System.out.println("Caeser Verschlüsselung / Chiffrierung");
System.out.println("");
System.out.println("Bitte geben Sie folgend einen kurzen Satz ohne Umlaute und Sonderzeichen ein");
wordBE = ScCaes.next();
wordLength = wordBE.length();
char charArray[] = wordBE.toCharArray();
WE = new char [charArray.length];
encryptedWE = new char [charArray.length];
for(int i=0;i<charArray.length;i++) {
WE = charArray;
}
System.out.println("Geben Sie folgend den Schlüssel zur Verschlüsselung ein: ");
key = ScCaes.nextInt();
encryptCaes.encrypt(key);
}
}
[/CODE]
Vielen Dank !