Hallo Leute,
habe folgendes Problem und hoffe es kann mir jemand weiter helfen:
Ich programmiere ein Programm in Java um Texte zu verschlüsseln, dabei
wird eine .txt Datei eingelesen, verschlüsselt und in einen neue .txt
gespeichert. Als Verschlüsselung verwende ich einen einfachen XOR Key.
Das Einlesen bzw das Speichern der Datei mache ich mit der Klasse
FileReader, FileWriter.Das ganze funktioniert schon ganz gut solange der
Schlüssel kleiner 127 ist und im Text keine Sonderzeichen enthalten
sind. Wenn ich jedoch ein Sonderzeichen verschlüssle (bsp €) dann
entsteht daraus ein von Java nicht erkannter Unicode Wert (das vermute
ich zumindest) und dieser Wert wird dann als ein '?' gespeichert, was
beim erneuten entschlüsseln natürlich ein Problem aufwirft da dieses
einen anderen Wert liefert als das verschlüsselte € Zeichen.
Ich suche jetzt schon seit 3 Tagen nach einer Lößung um die
verschlüsselten Daten zu speichern. Leider erbrachter auch der
BufferdWriter oder PrintWriter wenig Erfolg.
Hier mein Code zum speichern:
1 | public void WriteFile(String fileName){
|
2 | FileWriter fw;
|
3 | try{
|
4 | fw = new FileWriter(fileName);
|
5 | fw.write(bytes,0,bytes.length);
|
6 | fw.close();
|
7 |
|
8 | }catch(FileNotFoundException e){
|
9 | System.err.println("error File not found:"+fileName);
|
10 | }catch(IOException e){
|
11 | System.err.println("error Lesen aus "+fileName+" nicht möglich");
|
12 | }
|
Hat von euch jemand eine Idee?
Vielen Dank Stephan