![]() |
XOR VErschlüsselung schneller machen
Hi !
ich habe eine kleine Funktion für die XOR-Verschlüsselung gemacht, doch die ist ziemlich lahm, hätte jemand vielleicht eine Idee, diese schneller zu machen ??
Delphi-Quellcode:
function XORCrypt(Password,InputFilePath,OutputFilePath:String):Boolean;
var aktChar: Integer; InputFile, OutputFile: File of Byte; Buffer:Byte; begin Result := False; try aktChar := 1; AssignFile(InputFile,InputFilePath); Reset(InputFile); AssignFile(OutputFile,OutputFilePath); Rewrite(OutputFile); { MainForm.ProgressBar.Max := FileSize(InputFile); MainForm.ProgressBar.Position := 0; MainForm.ProgressBar.Enabled := True; } while not Eof(InputFile) do begin if(aktChar > Length(Password)) then aktChar := 1; Read(InputFile,Buffer); Buffer := Buffer xor ord(Password[aktChar]); Write(OutputFile,Buffer); Inc(aktChar); // MainForm.ProgressBar.Position := MainForm.ProgressBar.Position + 1; end; finally CloseFile(InputFile); CloseFile(OutputFile); Result := True; end; end; |
Re: XOR VErschlüsselung schneller machen
Buffer: Byte ist das Problem.
Da du anscheinend jedes Byte einzeln liest und schreibst, kann die Performance nur schrecklich sein. Mach einen Puffer und lies und schreib in groesseren Stuecken, dann ist der Overhead nicht so gross. |
Re: XOR VErschlüsselung schneller machen
dann nehme ich halt 8 byte, nur wie geht so etwas ??
|
Re: XOR VErschlüsselung schneller machen
Moin!
8 Byte? Das bringt auch nicht mehr - wie wärs mit einem 8 KB oder mehr Puffer? Wie wäre es mit 2 TFileStream's anstatt den alten Pascal Methoden? MfG Muetze1 |
Re: XOR VErschlüsselung schneller machen
oder gar MMF :)
aber ich glaube das wäre mit kanonen auf spatzen geschossen. da man hier kontinuierlich von a nach b streamt, kann man auch nen normalen filestream verwenden :) |
Re: XOR VErschlüsselung schneller machen
warum lädst du die datei nicht in einen tmemorystream tobst mit asm durch und dann wieder speichern?
|
Re: XOR VErschlüsselung schneller machen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz