Thema: Delphi xor funktioniert nicht

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: xor funktioniert nicht

  Alt 4. Mai 2009, 15:33
Zitat von SirThornberry:
Aber das die eigentliche Zeit so gering ist das die Progressbar keinen Sinn macht hängt doch von der Datenmenge (Länge des Strings) ab und kann nicht pauschal beantwortet werden.
120 MByte brauchen auf meinem (2.8GHz) Rechner unter 1 Sekunde.
Alles unter naja sagen wir 5 Sekunden braucht nur eine Sanduhr.
Sollte die Datenmenge so groß werden, daß man mehr als 3 Sekunden braucht, dann kann man immer noch
die Funktion auf Zeigerarithmetik umbauen...
Delphi-Quellcode:
// 250 MB => ~ 1 Sekunde
function StringXorCrypt(const text, key:string):string;
var
   i, j, keylen : Integer;
   ptext, presult, pkey : PChar;
begin
   SetLength(Result, length(text));
   j := 1;
   keylen := Length(key);
   ptext := PChar(text);
   presult := PChar(Result);
   pkey := PChar(key);
   for i := 1 to Length(text) do
   begin
      presult^ := chr(ord(ptext^) xor ord(pkey^));
      inc(presult);
      Inc(ptext);
      Inc(pkey);
      Inc(j);
      if j > keylen then
      begin
         j := 1;
         pkey := PChar(key);
      end;
   end;
end;
Andreas
  Mit Zitat antworten Zitat