krakning xor kryptering

, kildekoden eksempel på, hvordan man kan bryde kryptering ved hjælp af delphi er random() funktion og xor.,, [revner xor kryptering], smid en knap og redigere kasse om form, tekst i edit kasse, skal være mindst 8 tegn.hvis du bruger til at bryde en krypteret i snor, bare fylde buffer [0 - 7] med krypterede data og fylde [0 - 7] med klartekst tror du er krypteret (ret nemt, du brugernavn på noget af den slags).,,,, jeg vil gerne takke cheng wei (på delphi3000. c) for at pege på min rediculously langsomt opkald til edit1. tekst [i].jeg har valgt den algoritme, og nu prøver nøgler 2 longwords.som følge af denne fikse det nu scanninger 100000000 nøgler i 15seconds på min duron 600!waaahooooo!tak, tildele, cheng.,,, procedure TForm1.Button1Click(Sender: TObject);,, var i,j:longword;,, thistime,lasttime:longword;,, buffer:array[0..7]of byte;,, b:array[0..1]of longword absolute buffer[0];,, plaintext:array[0..7]of byte;,, p:array[0..1]of longword absolute plaintext[0];,, key:array[0..7]of byte;,, k:array[0..1]of longword absolute key[0];,, begin,, lasttime:=gettickcount;,, randomize;,, if length(edit1.text)<8 then exit;,, for i:=0 to 7 do,, begin,, plaintext[i]:=byte(edit1.text[i+1]);,, buffer[i]:=plaintext[i] xor random(256);//encrypt,, end;,, i:=0;,, repeat, , , for j:=0 to 1000000 do //loop is unrolled by compiler,, begin,, randseed:=i;,, key[0]:=random(256);,, key[1]:=random(256);,, key[2]:=random(256);,, key[3]:=random(256);,, key[4]:=random(256);,, key[5]:=random(256);,, key[6]:=random(256);,, key[7]:=random(256);,, if b[0] xor k[0]=p[0] then //test key in blocks of 4,, if b[1] xor k[1]=p[1] then,, begin,, thistime:=gettickcount;,, caption:='The key is: '+inttostr(i)+' ('+,, inttostr((thistime-lasttime)div 1000)+'sec)';,, Exit;,, end;,, inc(i,1);,, end;,, caption:=inttostr(i);,, application.processmessages;,, until i>longword(MaxInt);,, end;,,,



Previous:
Next Page: