Ş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 😛
NOT Alıntıdır...