Thema: Delphi 2 Prozeduren zu langsam

Einzelnen Beitrag anzeigen

Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

2 Prozeduren zu langsam

  Alt 21. Nov 2005, 18:56
Hallo!
Ich habe jetzt zwei Prozeduren geschrieben, die mir aber noch zu langsam sind. Ich bekomme Sie nicht schneller hin.
Kennt jemand ne Möglichkeit, dass diese Prozeduren schneller werden?

Prozedur 1:
Delphi-Quellcode:
function TVerschluesselung.Verschluesseln(passwort:String;Text:String):String;
var passwortverschluesselt,schluessel,block1,block2,text2,zeichen,zeichen2:String;
    index,i,i2,i3,i4,i5:Integer;

begin
  //ersten Schlüssel erzeugen
  passwortverschluesselt:=MD5Print(MD5String(Passwort));
  passwortverschluesselt:=MD5Print(MD5String(passwort+passwortverschluesselt+passwort));
  schluessel:=passwortverschluesselt;
  //erster Schlüssel erzeugt

  block1:='';
  block2:='';
  i5:=length(Text);
  text2:=text;
  index:=-1; //BlockIndex

  //verschlüsseln
  repeat
    index:=index+1;
    //Block ausschneiden
    if index<>0 then delete(text2,1,32);
    block1:=text2;
    delete(block1,33,length(block1));
    //Block verschlüsseln
    for i:=1 to length(Block1) do begin
      Zeichen:=Block1[i];

      Zeichen2:=Schluessel[i];
      i2:=ord(Zeichen2[1]);

      i4:=ord(Zeichen[1]);
      i3:=i4+i2;
   // if i3>255 then i3:=i3-255;
      Block2:=Block2+char(i3);
    end;
    //Neuer Schlüssel
    schluessel:=MD5Print(MD5String(Block1+schluessel+Block1));
  until index>=i5/32;
  result:=String(Block2);
end;
Prozedur 2:
Delphi-Quellcode:
function TVerschluesselung.Entschluesseln(passwort:String;Text:String):String;
var passwortverschluesselt,schluessel,block1,block2,block3,text2,zeichen,zeichen2:String;
    index,i,i2,i3,i4,i5:Integer;
begin
  //ersten Schlüssel erzeugen
  passwortverschluesselt:=MD5Print(MD5String(Passwort));
  passwortverschluesselt:=MD5Print(MD5String(passwort+passwortverschluesselt+passwort));
  schluessel:=passwortverschluesselt;
  //erster Schlüssel erzeugt

  block1:='';
  block2:='';
  i5:=length(Text);
  text2:=text;
  index:=-1; //BlockIndex


  //entschlüsseln
  repeat
    index:=index+1;
    //Block ausschneiden
    if index<>0 then delete(text2,1,32);
    block1:=text2;
    delete(block1,33,length(block1));
    //Block entschlüsseln
    for i:=1 to length(Block1) do begin
      Zeichen:=Block1[i];

      Zeichen2:=Schluessel[i];
      i2:=ord(Zeichen2[1]);

      i4:=ord(Zeichen[1]);
      i3:=i4-i2;
   // if i3<0 then i3:=i3+255;
      Block2:=Block2+char(i3);
    end;
    //Neuer Schlüssel
    Block3:=Block2;
    delete(Block3,1,index*32);
    delete(Block3,33,length(Block3));
    schluessel:=MD5Print(MD5String(Block3+schluessel+Block3));
  until index>=i5/32;
  result:=String(Block2);
end;
  Mit Zitat antworten Zitat