Einen schönen Abend!
Ich nutze die folgende Funktion, um 1 Datei mit einem Teil der 2. Datei zu "verschlüsseln", wobei dies nur eine simple XOR-Verschlüsselung ist:
Delphi-Quellcode:
procedure Crypt(XFile, KFile: String); //Durch die freundliche Unterstützung von rollstuhlfahrer und Uwe Raabe entstanden
var
fkey, fxfile: TFilestream;
keys: array[0..524287] of Char; // deine Menge weniger 1
i: Cardinal;
buffer: Char;
begin
fkey := TFileStream.Create(kfile, fmOpenRead);
fkey.Read(keys, 524288); // nun wieder vollzählig
fkey.Free; // wird nicht mehr benötigt, da im Speicher
fxfile := TFileStream.Create(xFile, fmOpenReadWrite);
for i := 0 to fxfile.Size -1 do
begin
fxfile.Read(buffer, 1);
fxfile.Position := fxFile.Position - 1;
buffer := Chr(Ord(buffer) XOR Ord(keys[(i-1) mod 524287]));
fxFile.Write(buffer, 1); // XOR
end;
fxfile.Free;
end;
Wenn ich diese Funktion in mein Programm integriere, läuft sie gut. Das jedoch nur bei "kleinen" Schlüsseldateien. Will ich eine größere Datei verwenden, braucht das Programm ewig. Dabei lässt sich auch das
GUI kaum mehr nutzen, bzw. stürzt völlig ab. Kann ich was dagegen tun? Oder gibt es vielleicht eine "echte" Verschlüsselungsmethode, die schnell genug ist? Die zu ver- und entschlüsselnden Dateien sollten beliebig groß sein können.
Danke im Voraus