Ich bin gerade dabei in Java die RSA Verschlüsselung zu implementieren. Das Erstellen der Schlüssel dürfte soweit funktionieren (bin mal mit einem Debugger durchgegangen), Probleme habe ich allerdings dabei, wenn Text verschlüsselt werden soll. Ich bekomme als Ausgabe lauter Fragezeichen und im Debugger chinesische Schriftzeichen...
Ver- und Entschlüsselt wird mit den folgenden Methoden
split ist eine Methode, die Text in Zahlen umwandelt. transform sind Methoden, die Folgen von Zahlen in Folgen von Texten umwandeln bzw. umgekehrt und concat ist eine Methode, die aus einem Array von Texten (also String[]) wieder einen einzelnen erstellt (String).
Ver- und Entschlüsselt wird mit den folgenden Methoden
Java:
public String[] cipher(String text) {
//zerlegt in Zahlenfolge
BigInteger[] zahlen = CipherTools.split(text,modulus);
//chiffriert jede Zahl
for(int i=0; i < zahlen.length; i++) {
zahlen[i] = zahlen[i].modPow(privateExponent,modulus);
}
//gibt Folge von Zahlen aus
String[] fertig = CipherTools.transform(zahlen);
return fertig;
}
public String decipher(String... text) {
//berechnet die Zahl c zu jedem Stueck Text
BigInteger[] zahlen = CipherTools.transform(text);
//dechiffriert jede Zahl
for(int i=0; i < zahlen.length; i++) {
zahlen[i] = zahlen[i].modPow(privateExponent,modulus);
}
//gibt zusammenhaengenden Text aus
return CipherTools.concat(CipherTools.transform(zahlen));
}
split ist eine Methode, die Text in Zahlen umwandelt. transform sind Methoden, die Folgen von Zahlen in Folgen von Texten umwandeln bzw. umgekehrt und concat ist eine Methode, die aus einem Array von Texten (also String[]) wieder einen einzelnen erstellt (String).