Hallo,
folgende Methode ist dafür da einen char multiplikativ zu verschlüsseln(=jeder Buchstabenwert wird mit einer Schlüsselzahl multipliziert und dann Modulo 26 gerechnet, um wieder auf einen Buchstaben im Alphabet zu kommen. Damit der Text auch wieder entschlüsselt werden kann, können nur Teilerfremde von 26 als Schlüssel verwendet werden. Dieses sind: 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 und 25.).
Jedoch bei der Verschlüsselung werden mir auch Sonderzeichen wie [ 8 ) % ", ... mit ausgegeben.
Wo ist mein Fehler?
folgende Methode ist dafür da einen char multiplikativ zu verschlüsseln(=jeder Buchstabenwert wird mit einer Schlüsselzahl multipliziert und dann Modulo 26 gerechnet, um wieder auf einen Buchstaben im Alphabet zu kommen. Damit der Text auch wieder entschlüsselt werden kann, können nur Teilerfremde von 26 als Schlüssel verwendet werden. Dieses sind: 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 und 25.).
Jedoch bei der Verschlüsselung werden mir auch Sonderzeichen wie [ 8 ) % ", ... mit ausgegeben.
Wo ist mein Fehler?
Java:
public static String verschluessle(int schluessel, String eingabe){
eingabe = eingabe.toLowerCase();
char[] chars = eingabe.toCharArray();
for(int i = 0; i < eingabe.length(); i++)
chars[i] = encode(chars[i], schluessel);
return String.valueOf(chars).toLowerCase();
}
public static char encode(char c, int schluessel){
if(c >= 'a' && c <= 'z')
return (char)((c-'a'*schluessel)%26 + 'a');
else
return c;
}