Monster Notebook
 
Şimdi Üye Ol | Şifremi Unuttum
Ana SayfaSanalkurs.netProgramlarSanalkurs.netÖnemli SitelerSanalkurs.netYazarlarSanalkurs.netDers EkleSanalkurs.netE-DergiSanalkurs.netBlog Sanalkurs.netİletişimSanalkurs.netForum
 
Anasayfa » Delphi (78 ders)
 
MD5 Şifreleme

Yazar: Ali Yeşiloğlu  
Eklenme: 30.06.2009   Okunma: 981   Seviyesi:  Orta
 
Delphi ile md5 şifrelemeyi öğrenelim.

İlk olarak md5.pas dosyamızın tamamını kopyalayın yeni bir metin belgesi oluşturun ve içine yapıştırın.. İsim olarak md5.pas yapın ve proje klasörünüzün içine atın.

md5.pas dosyası
:

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.




Şimdi projemizde implementation altına pas dosyamızı include edelim.


   uses
   md5;


Formumuza şimdi:
- 1 adet Tedit
- 1 adet Tlabel
- 1 adette Tbutton ekleyin

Tbutton un onClik (Tıklayınca) olayına aşağıdaki kodu yazınız...


Label1.Caption := MD_5(Edit1.Text);


edit1 içine girilen değeri size md5 olarak şifreleyip label1'in caption değerine yazacaktır.
 

 

MD5 Şifreleme Dersini Yazdirin YAZDIR

"MD5 Şifreleme" dersi için 5 yorum var

01.07.2009 Rasmus diyor ki:
Hocam dersin için tşkr ederim ama Bu php'den daha zor ya

03.07.2009 batuhan529 diyor ki:
evet php den daha zor gibi ama hocamız sayesinde öğreniyoruz

03.07.2009 taytanicman diyor ki:
evet çok zor php de md5 saniyelik iş

06.07.2009 mstbaysan diyor ki:
Biraz Açıklama Koysan Süper Olacak

20.07.2009 barutali diyor ki:
her satır için açıklama yazarak yazdığım derslerde var bu seferde video lu olsun diyorlar :) Pek zamanı olan biri olmadığım için ancak elimden bu kadar geliyor yinede eleştirileriniz için teşekkürler...

arkadaşlar artık delphide de saniyelik bir iş md5.pas dosyanızı kullandığınız sürümün Lib klasörü altına attıktan sonra uses a md5 yazıp fonksiyonu kolaylıkla kullanabilirsiniz....

ayrıca sitenin code için kullanılan bbcode undaki sorun dan ötürü md5 pas dosyasının bir kaç kısmı eksik çıkmış... aşağıdaki linkten indirebilirsiniz...

http://rapidshare.com/files/257882994/md5.pas.html

  BU DERSE YORUM EKLEYİN

Üye olmadan yorum ekleyemezsiniz !


UYARI: SANALKURS.net'te yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. Yazarlar, gönderdikleri makale ve derslerle başkalarını yanıltıcı bilgi veremezler. SANALKURS.net bilgilerin kullanımı sonucunda doğacak hata ve zararlardan sorumlu tutulamaz. SANALKURS.net'te yer alan bir makale link vermek ve kaynak göstermek şartıyla başka bir sitede yayınlanabilir. SANALKURS.net kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu hiçbir yazı, fotoğraf, resim vb. materyal ve ürünü kullanamazlar. SANALKURS.net kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri izinsiz kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 178 Ziyaretçi, 14 Üye
Gervinho, bozoklar, O-Lee, Keremel, NaRe_TuRKeY, ramones1982, sanalusta, s-R-c, Charisma_47, ertughaskan, deliler, hacoban, kerasus, mocaco3
Bugün: 748, Dün: 10154, Bu Ay: 21115, Toplam Ziyaret: 7226927, Toplam Üye: 216260, Son Üye: nur_cihan
Yazılı Dersler: 2460, Video Dersler: 407, Toplam Yazar: 64, Toplam Dosya: 53, Toplam Link: 26
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz