Revision 643235663133 () - Diff

Link to this snippet: https://friendpaste.com/5CjMjlY8mk9rpWh252tR7Z
Embed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package AffCh;

import java.util.*;

public class BruteForce {

ArrayList<String> 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;
}

}