Hallo zusammen,
ich habe ein Problem mit einem Programm, das Dateien mit XOR verschlüsseln und entschlüsseln soll.
Als ersten Ansatz habe ich versucht, den zu verschlüsselnden Text in einen String zu schreiben und jedes Zeichen des Strings mit einem festen Wert zu XORen.
Z. B. :
Zum Entschlüsseln XOR mit dem gleichen Wert.
So funktioniert das einwandfrei, aber wenn ich den verschlüsselten Text in eine binäre Datei schreibe und vor dem Entschlüsseln wieder auslese, funktioniert es in diesem Fall nur, wenn der Wert mit dem ich XOR nehme, kleiner als 160 ist. Ab 160 scheint er nicht mehr korrekt in die Datei zu schreiben. Jedenfalls entsprechen nach dem Entschlüsseln nicht mehr alle Zeichen dem ursprünglichen Text.
Hat jemand eine Idee, woran das liegen kann?
ich habe ein Problem mit einem Programm, das Dateien mit XOR verschlüsseln und entschlüsseln soll.
Als ersten Ansatz habe ich versucht, den zu verschlüsselnden Text in einen String zu schreiben und jedes Zeichen des Strings mit einem festen Wert zu XORen.
Z. B. :
Code:
s=text;
a="";
for (int h=0; h<textlen; h++ ) {
int i = (int)s.charAt(h) ^ 248;
a += (char)i;
}
So funktioniert das einwandfrei, aber wenn ich den verschlüsselten Text in eine binäre Datei schreibe und vor dem Entschlüsseln wieder auslese, funktioniert es in diesem Fall nur, wenn der Wert mit dem ich XOR nehme, kleiner als 160 ist. Ab 160 scheint er nicht mehr korrekt in die Datei zu schreiben. Jedenfalls entsprechen nach dem Entschlüsseln nicht mehr alle Zeichen dem ursprünglichen Text.
Hat jemand eine Idee, woran das liegen kann?