AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

XOR VErschlüsselung schneller machen

Ein Thema von idontwantaname · begonnen am 31. Dez 2004 · letzter Beitrag vom 3. Jan 2005
Antwort Antwort
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#1

XOR VErschlüsselung schneller machen

  Alt 31. Dez 2004, 13:24
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;
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: XOR VErschlüsselung schneller machen

  Alt 31. Dez 2004, 14:11
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.
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: XOR VErschlüsselung schneller machen

  Alt 31. Dez 2004, 16:54
dann nehme ich halt 8 byte, nur wie geht so etwas ??
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: XOR VErschlüsselung schneller machen

  Alt 1. Jan 2005, 01:52
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
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#5

Re: XOR VErschlüsselung schneller machen

  Alt 1. Jan 2005, 03:54
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
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#6

Re: XOR VErschlüsselung schneller machen

  Alt 3. Jan 2005, 06:38
warum lädst du die datei nicht in einen tmemorystream tobst mit asm durch und dann wieder speichern?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: XOR VErschlüsselung schneller machen

  Alt 3. Jan 2005, 10:29
Zitat von generic:
warum lädst du die datei nicht in einen tmemorystream tobst mit asm durch und dann wieder speichern?
Assembler-Befehle direkt zu schreiben dürfte dir hier nichts bringen, eine einfache XOR-Operation sollte der Compiler mindestens genauso gut optimieren können wie ein Mensch.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz