--- Revision None +++ Revision 616333346235 @@ -0,0 +1,149 @@ +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; + + + + 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; + } + +}