Hallo an alle !
Ich arbeite seit gestern erst an einem kleinem (Verschlüsselungs-)Programm, welches mir folgendes ermöglicht:
Ich habe 1 Datei, die verschlüsselt werden soll(Datei X) und eine 'Schlüsseldatei'(Datei K), um Datei X zu entschlüsseln. Meine Pläne sind, dass ich die ersten 512 KB aus Datei K auslese, dann Datei X xor 512 KB und dann soll Datei X durch das Ergebnis ersetzt werden. Am Ende befinden sich also eine unleserliche Datei X und eine nichtveränderte Datei K.
Leider hab ich nicht die geringste Ahnung, wie ich das realisieren soll. Durch die Forumsuche habe ich von TFileStream erfahren, doch weiß nicht, wie ich das genau anwenden soll. Kann mir jemand vielleicht zeigen, wie ich das hinbekommen könnte?
Delphi-Quellcode:
procedure Crypt(Original, Keyfile, NewFile : String);
var input, xorbyte : TFileStream;
begin
//Die Originaldatei wird zum Bearbeiten geöffnet
input := TFileStream.Create(Original, fmOpenReadWrite);
//Die Schlüsseldatei wird zum LESEN geöffnet
xorbyte := TFileStream.Create(KeyFile, fmOpenRead);
//Lese 512 KB aus Schlüsseldatei
xorbyte.Read(xorbyte, 524288);//512 KB or 0,5 MB
//Hier fehlt das XOR mit der Originaldatei,
//Ich weiß nicht, wie ich das Ergebnis in den Buffer speichern soll
//So hatte ich mir das vorgestellt:
//input.WriteBuffer((input xor xorbyte), 524288);
//Schreibe das Ergebnis aus input xor xorbyte in die Originaldatei
//Speicher wieder freigeben
xorbyte.Free;
input.Free;
end;
Ich weiß, dass vielleicht der ganze Code Quatsch ist und dass ich keine Ahnung von TFileStream oder XOR habe, aber bei mir heißt die Divise 'learning-by-doing' und da ich jetzt genau hier hänge...wer gibt mir Aushilfe?