DeathKO | v.24xx Light Farm | ORION | Beta: 17 Kasım | Official: 24 Kasım

[Delphi Programa MD5 Şifreli Giriş]

E Çevrimdışı
11 Ocak 2012
12,855
107
48
Şifre exe de kayıtlı olduğu için çözülmesi kolay fakat bu şekilde birazda olsa iş karmaşıklaşıyor. Neden yazdım bunu bende bilmiyorum..

İlk olarak md5.pas adında bir dosya oluşturuyoruz kaynak kodlarımızın bulunduğu klasörün içine ve metin editörüyle şunları yazıyoruz;

PHP:
unit MD5;



interface



type

Dizi= Array of integer;



function MD_5(str: string): string;



implementation



function rhex(num: integer): string;

var

str,hex_chr: string;

j: integer;

begin

hex_chr:='0123456789abcdef';

str:='';

for j:=0 to 3 do

str:=str+hex_chr[((num shr (j*8+4)) and $F)+1]+hex_chr[((num shr (j*8)) and $F)+1];

Result:=str;

end;



function str2blks_MD5(str: string): Dizi;

var

nblk: integer;

blks: Dizi;

i: integer;

begin

nblk:=((length(str)+8) shr 6)+1;

SetLength(blks,nblk*16);

for i:=0 to nblk*16-1 do blks[i]:=0;

for i:=0 to length(str)-1 do

blks[i shr 2]:=blks[i shr 2] or ((ord(str[i+1]) shl ((i mod 4)*8)));

blks[i shr 2]:=blks[i shr 2] or ($80 shl ((i mod 4)*8));

blks[nblk*16-2]:=length(str)*8;

Result:=blks;

end;



function add(x,y: integer): integer;

var

lsw,msw: integer;

begin

lsw:=(x and $FFFF)+(y and $FFFF);

msw:=(x shr 16)+(y shr 16)+(lsw shr 16);

Result:=(msw shl 16) or (lsw and $FFFF);

end;



function rol(num,cnt: integer): integer;

begin

Result:=(num shl cnt) or (num shr (32 - cnt));

end;



function cmn(q, a, b, x, s, t: integer): integer;

begin

Result:= add(rol(add(add(a, q), add(x, t)), s), b);

end;



function ff(a, b, c, d, x, s, t: integer): integer;

Begin

Result:= cmn((b and c) or ((not b) and d), a, b, x, s, t);

end;



function gg(a, b, c, d, x, s, t: integer): integer;

Begin

Result:= cmn((b and d) or (c and (not d)), a, b, x, s, t);

end;



function hh(a, b, c, d, x, s, t: integer): integer;

Begin

Result:= cmn(b xor c xor d, a, b, x, s, t);

end;



function ii(a, b, c, d, x, s, t: integer): integer;

Begin

Result:= cmn(c xor (b or (not d)), a, b, x, s, t);

end;



function MD_5(str: string): string;

var

x: dizi;

a,b,c,d,olda,oldb,oldc,oldd: integer;

i: integer;

begin

x:= str2blks_MD5(str);

a:= 1732584193;

b:= -271733879;

c:= -1732584194;

d:= 271733878;



i:=0;

while i<length(x) do

begin

olda := a;

oldb := b;

oldc := c;

oldd := d;



a := ff(a, b, c, d, x[i+ 0], 7 , -680876936);

d := ff(d, a, b, c, x[i+ 1], 12, -389564586);

c := ff(c, d, a, b, x[i+ 2], 17, 606105819);

b := ff(b, c, d, a, x[i+ 3], 22, -1044525330);

a := ff(a, b, c, d, x[i+ 4], 7 , -176418897);

d := ff(d, a, b, c, x[i+ 5], 12, 1200080426);

c := ff(c, d, a, b, x[i+ 6], 17, -1473231341);

b := ff(b, c, d, a, x[i+ 7], 22, -45705983);

a := ff(a, b, c, d, x[i+ 8], 7 , 1770035416);

d := ff(d, a, b, c, x[i+ 9], 12, -1958414417);

c := ff(c, d, a, b, x[i+10], 17, -42063);

b := ff(b, c, d, a, x[i+11], 22, -1990404162);

a := ff(a, b, c, d, x[i+12], 7 , 1804603682);

d := ff(d, a, b, c, x[i+13], 12, -40341101);

c := ff(c, d, a, b, x[i+14], 17, -1502002290);

b := ff(b, c, d, a, x[i+15], 22, 1236535329);



a := gg(a, b, c, d, x[i+ 1], 5 , -165796510);

d := gg(d, a, b, c, x[i+ 6], 9 , -1069501632);

c := gg(c, d, a, b, x[i+11], 14, 643717713);

b := gg(b, c, d, a, x[i+ 0], 20, -373897302);

a := gg(a, b, c, d, x[i+ 5], 5 , -701558691);

d := gg(d, a, b, c, x[i+10], 9 , 38016083);

c := gg(c, d, a, b, x[i+15], 14, -660478335);

b := gg(b, c, d, a, x[i+ 4], 20, -405537848);

a := gg(a, b, c, d, x[i+ 9], 5 , 568446438);

d := gg(d, a, b, c, x[i+14], 9 , -1019803690);

c := gg(c, d, a, b, x[i+ 3], 14, -187363961);

b := gg(b, c, d, a, x[i+ 8], 20, 1163531501);

a := gg(a, b, c, d, x[i+13], 5 , -1444681467);

d := gg(d, a, b, c, x[i+ 2], 9 , -51403784);

c := gg(c, d, a, b, x[i+ 7], 14, 1735328473);

b := gg(b, c, d, a, x[i+12], 20, -1926607734);



a := hh(a, b, c, d, x[i+ 5], 4 , -378558);

d := hh(d, a, b, c, x[i+ 8], 11, -2022574463);

c := hh(c, d, a, b, x[i+11], 16, 1839030562);

b := hh(b, c, d, a, x[i+14], 23, -35309556);

a := hh(a, b, c, d, x[i+ 1], 4 , -1530992060);

d := hh(d, a, b, c, x[i+ 4], 11, 1272893353);

c := hh(c, d, a, b, x[i+ 7], 16, -155497632);

b := hh(b, c, d, a, x[i+10], 23, -1094730640);

a := hh(a, b, c, d, x[i+13], 4 , 681279174);

d := hh(d, a, b, c, x[i+ 0], 11, -358537222);

c := hh(c, d, a, b, x[i+ 3], 16, -722521979);

b := hh(b, c, d, a, x[i+ 6], 23, 76029189);

a := hh(a, b, c, d, x[i+ 9], 4 , -640364487);

d := hh(d, a, b, c, x[i+12], 11, -421815835);

c := hh(c, d, a, b, x[i+15], 16, 530742520);

b := hh(b, c, d, a, x[i+ 2], 23, -995338651);



a := ii(a, b, c, d, x[i+ 0], 6 , -198630844);

d := ii(d, a, b, c, x[i+ 7], 10, 1126891415);

c := ii(c, d, a, b, x[i+14], 15, -1416354905);

b := ii(b, c, d, a, x[i+ 5], 21, -57434055);

a := ii(a, b, c, d, x[i+12], 6 , 1700485571);

d := ii(d, a, b, c, x[i+ 3], 10, -1894986606);

c := ii(c, d, a, b, x[i+10], 15, -1051523);

b := ii(b, c, d, a, x[i+ 1], 21, -2054922799);

a := ii(a, b, c, d, x[i+ 8], 6 , 1873313359);

d := ii(d, a, b, c, x[i+15], 10, -30611744);

c := ii(c, d, a, b, x[i+ 6], 15, -1560198380);

b := ii(b, c, d, a, x[i+13], 21, 1309151649);

a := ii(a, b, c, d, x[i+ 4], 6 , -145523070);

d := ii(d, a, b, c, x[i+11], 10, -1120210379);

c := ii(c, d, a, b, x[i+ 2], 15, 718787259);

b := ii(b, c, d, a, x[i+ 9], 21, -343485551);



a := add(a, olda);

b := add(b, oldb);

c := add(c, oldc);

d := add(d, oldd);



inc(i,16);

end;

Result:= rhex(a) + rhex(b) + rhex(c) + rhex(d);

end;



end.


Tamammmmm.. Şimdi form'umuzun Uses kısmına md5 i ekliyoruz.



Form.oncreate olayına..



PHP:
procedure TForm1.FormCreate(Sender: TObject);

var

x,y:string; //değişkenler

begin

y:='e10adc3949ba59abbe56e057f20f883e'; //burada şifremizin md5 ini yazıyoruz. şuan buradaki 123456  dır.

x:=inputbox('Şifreli Giriş','Lütfen Şifrenizi Giriniz:',''); // gösterilcek mesaj

if y=md_5(x) then //şifre girilen şifreyle eşleşiyor mu bakalım

application.messagebox('Programa Girişiniz Onaylandı.Tebrikler ..!','Tebrikler',mb_ok+mb_defbutton1) // eğer şifreler okeyse yol ver gitsin mesajı..

else

halt; // yanlışsa şifre kapı dışarı etme şeysi..

end;


bunu formlar arası geçişte fln kullanıcı görevlerini kısıtlamada falan kullanılabilinir. Programın içerisine kod olarak bir sürü md5 eklenirse değişkenlere md5 bulunmasıda zor olur ama bu çooook acemice bir olay zamanınız yoksa gömün gitsin :p


NOT Alıntıdır...