package AffCh; import java.util.*; public class BruteForce { ArrayList ergebnisse = new ArrayList(); Data daten = new Data(); public BruteForce(String userEingabe) { int[] cryp = convertString(userEingabe); int[] decryp = new int[cryp.length]; // itteration über die inversen for (int i = 0; i < daten.inverse.length; i++) { // itteration über die möglichen additionen for (int j = 0; j < daten.addition.length; j++) { System.out.println("Das aktuelle Schlüsselpaar ist:" + " " + "(" + daten.inverse[i] + "," + daten.addition[j] + ")"); // entschüsseln jedes characters for (int j2 = 0; j2 < cryp.length; j2++) { decryp[j2] = decrypeChar(cryp[j2], daten.inverse[i], daten.addition[j], daten.modulo); } //Ergebnisstring in eine Liste schreiben ergebnisse.add(convertInt(decryp)); }// ende additionen }// ende inversen } /* *Die Funktion zum Dechiffrieren */ public int decrypeChar(int buchstabe, int inverse, int addition, int modulo) { int ergebnis = (inverse * (buchstabe - addition)) % modulo; return ergebnis; } /* *String in seine Kodierungswerte übersetzen */ public int[] convertString(String eingabe) { int[] convertToInt = new int[eingabe.length()]; if (eingabe != null) { for (int i = 0; i < eingabe.length(); i++) { switch (eingabe.charAt(i)) { case 'a': convertToInt[i] = 0; break; case 'b': convertToInt[i] = 1; break; //Auf grund der lesefreundlichkeit, fehlen die restlichen buchstaben case 'z': convertToInt[i] = 25; break; case ' ': convertToInt[i] = 26; break; default: System.err.println("Kein Gültiger CHARACTER!!!"); break; } } } else { System.err.println("Noch kein String eingegeben!!!"); } return convertToInt; } /* *Integerwerte zu einem KlartextString zusammenbasteln */ public String convertInt(int[] a) { String ergebniss = null; for (int j = 0; j < a.length; j++) { switch (a[j]) { case 0: ergebniss += 'a'; break; case 1: ergebniss += 'b'; break; //Auf grund der lesefreundlichkeit, fehlen die restlichen buchstaben case 25: ergebniss += 'z'; break; case 26: ergebniss += ' '; break; default: System.err.println("Keine Gültige ZAHL!!!"); break; } } return ergebniss; } }