0 Üye ve 1 Ziyaretçi konuyu incelemekte.
unit MD5;interfacetypeDizi= Array of integer;function MD_5(str: string): string;implementationfunction rhex(num: integer): string;varstr,hex_chr: string;j: integer;beginhex_chr:='0123456789abcdef';str:='';for j:=0 to 3 dostr:=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;varnblk: integer;blks: Dizi;i: integer;beginnblk:=((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 doblks[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;varlsw,msw: integer;beginlsw:=(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;beginResult:=(num shl cnt) or (num shr (32 - cnt));end;function cmn(q, a, b, x, s, t: integer): integer;beginResult:= add(rol(add(add(a, q), add(x, t)), s), b);end;function ff(a, b, c, d, x, s, t: integer): integer;BeginResult:= 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;BeginResult:= 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;BeginResult:= cmn(b xor c xor d, a, b, x, s, t);end;function ii(a, b, c, d, x, s, t: integer): integer;BeginResult:= cmn(c xor (b or (not d)), a, b, x, s, t);end;function MD_5(str: string): string;varx: dizi;a,b,c,d,olda,oldb,oldc,oldd: integer;i: integer;beginx:= str2blks_MD5(str);a:= 1732584193;b:= -271733879;c:= -1732584194;d:= 271733878;i:=0;while i<length(x) dobeginolda := 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.
Label1.Caption := MD_5(Edit1.Text);
MD5 tek yönlü bir şifreleme algoritmasıdır...ama diyorsanki ben adamın şifresini kaydettim md5 olarak şimdi adam kullanıcı adı şifresini girdiğinde nasıl doğru girmiş anlıcam diyorsan...girilen şifreyi md5 e çevirip db deki md5 ile karşılaştırcaksın ...