Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: md5 Şifreleme  (Okunma sayısı 2708 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
md5 Şifreleme
« : 30 Haziran 2009 22:05:49 »
İlk olarak aşağıdaki unit in tamamını kopyalayın ve projenizin olduğu klasöre md5.pas olarak kaydedin...

Kod: Delphi
  1. unit MD5;
  2.  
  3. interface
  4.  
  5. type
  6. Dizi= Array of integer;
  7.  
  8. function MD_5(str: string): string;
  9.  
  10. implementation
  11.  
  12. function rhex(num: integer): string;
  13. var
  14. str,hex_chr: string;
  15. j: integer;
  16. begin
  17. hex_chr:='0123456789abcdef';
  18. str:='';
  19. for j:=0 to 3 do
  20. str:=str+hex_chr[((num shr (j*8+4)) and $F)+1]+hex_chr[((num shr (j*8)) and $F)+1];
  21. Result:=str;
  22. end;
  23.  
  24. function str2blks_MD5(str: string): Dizi;
  25. var
  26. nblk: integer;
  27. blks: Dizi;
  28. i: integer;
  29. begin
  30. nblk:=((length(str)+8) shr 6)+1;
  31. SetLength(blks,nblk*16);
  32. for i:=0 to nblk*16-1 do blks[i]:=0;
  33. for i:=0 to length(str)-1 do
  34. blks[i shr 2]:=blks[i shr 2] or ((ord(str[i+1]) shl ((i mod 4)*8)));
  35. blks[i shr 2]:=blks[i shr 2] or ($80 shl ((i mod 4)*8));
  36. blks[nblk*16-2]:=length(str)*8;
  37. Result:=blks;
  38. end;
  39.  
  40. function add(x,y: integer): integer;
  41. var
  42. lsw,msw: integer;
  43. begin
  44. lsw:=(x and $FFFF)+(y and $FFFF);
  45. msw:=(x shr 16)+(y shr 16)+(lsw shr 16);
  46. Result:=(msw shl 16) or (lsw and $FFFF);
  47. end;
  48.  
  49. function rol(num,cnt: integer): integer;
  50. begin
  51. Result:=(num shl cnt) or (num shr (32 - cnt));
  52. end;
  53.  
  54. function cmn(q, a, b, x, s, t: integer): integer;
  55. begin
  56. Result:= add(rol(add(add(a, q), add(x, t)), s), b);
  57. end;
  58.  
  59. function ff(a, b, c, d, x, s, t: integer): integer;
  60. Begin
  61. Result:= cmn((b and c) or ((not b) and d), a, b, x, s, t);
  62. end;
  63.  
  64. function gg(a, b, c, d, x, s, t: integer): integer;
  65. Begin
  66. Result:= cmn((b and d) or (c and (not d)), a, b, x, s, t);
  67. end;
  68.  
  69. function hh(a, b, c, d, x, s, t: integer): integer;
  70. Begin
  71. Result:= cmn(b xor c xor d, a, b, x, s, t);
  72. end;
  73.  
  74. function ii(a, b, c, d, x, s, t: integer): integer;
  75. Begin
  76. Result:= cmn(c xor (b or (not d)), a, b, x, s, t);
  77. end;
  78.  
  79. function MD_5(str: string): string;
  80. var
  81. x: dizi;
  82. a,b,c,d,olda,oldb,oldc,oldd: integer;
  83. i: integer;
  84. begin
  85. x:= str2blks_MD5(str);
  86. a:= 1732584193;
  87. b:= -271733879;
  88. c:= -1732584194;
  89. d:= 271733878;
  90.  
  91. i:=0;
  92. while i<length(x) do
  93.  
  94. begin
  95. olda := a;
  96. oldb := b;
  97. oldc := c;
  98. oldd := d;
  99.  
  100. a := ff(a, b, c, d, x[i+ 0], 7 , -680876936);
  101. d := ff(d, a, b, c, x[i+ 1], 12, -389564586);
  102. c := ff(c, d, a, b, x[i+ 2], 17, 606105819);
  103. b := ff(b, c, d, a, x[i+ 3], 22, -1044525330);
  104. a := ff(a, b, c, d, x[i+ 4], 7 , -176418897);
  105. d := ff(d, a, b, c, x[i+ 5], 12, 1200080426);
  106. c := ff(c, d, a, b, x[i+ 6], 17, -1473231341);
  107. b := ff(b, c, d, a, x[i+ 7], 22, -45705983);
  108. a := ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
  109. d := ff(d, a, b, c, x[i+ 9], 12, -1958414417);
  110. c := ff(c, d, a, b, x[i+10], 17, -42063);
  111. b := ff(b, c, d, a, x[i+11], 22, -1990404162);
  112. a := ff(a, b, c, d, x[i+12], 7 , 1804603682);
  113. d := ff(d, a, b, c, x[i+13], 12, -40341101);
  114. c := ff(c, d, a, b, x[i+14], 17, -1502002290);
  115. b := ff(b, c, d, a, x[i+15], 22, 1236535329);
  116.  
  117. a := gg(a, b, c, d, x[i+ 1], 5 , -165796510);
  118. d := gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
  119. c := gg(c, d, a, b, x[i+11], 14, 643717713);
  120. b := gg(b, c, d, a, x[i+ 0], 20, -373897302);
  121. a := gg(a, b, c, d, x[i+ 5], 5 , -701558691);
  122. d := gg(d, a, b, c, x[i+10], 9 , 38016083);
  123. c := gg(c, d, a, b, x[i+15], 14, -660478335);
  124. b := gg(b, c, d, a, x[i+ 4], 20, -405537848);
  125. a := gg(a, b, c, d, x[i+ 9], 5 , 568446438);
  126. d := gg(d, a, b, c, x[i+14], 9 , -1019803690);
  127. c := gg(c, d, a, b, x[i+ 3], 14, -187363961);
  128. b := gg(b, c, d, a, x[i+ 8], 20, 1163531501);
  129. a := gg(a, b, c, d, x[i+13], 5 , -1444681467);
  130. d := gg(d, a, b, c, x[i+ 2], 9 , -51403784);
  131. c := gg(c, d, a, b, x[i+ 7], 14, 1735328473);
  132. b := gg(b, c, d, a, x[i+12], 20, -1926607734);
  133.  
  134. a := hh(a, b, c, d, x[i+ 5], 4 , -378558);
  135. d := hh(d, a, b, c, x[i+ 8], 11, -2022574463);
  136. c := hh(c, d, a, b, x[i+11], 16, 1839030562);
  137. b := hh(b, c, d, a, x[i+14], 23, -35309556);
  138. a := hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
  139. d := hh(d, a, b, c, x[i+ 4], 11, 1272893353);
  140. c := hh(c, d, a, b, x[i+ 7], 16, -155497632);
  141. b := hh(b, c, d, a, x[i+10], 23, -1094730640);
  142. a := hh(a, b, c, d, x[i+13], 4 , 681279174);
  143. d := hh(d, a, b, c, x[i+ 0], 11, -358537222);
  144. c := hh(c, d, a, b, x[i+ 3], 16, -722521979);
  145. b := hh(b, c, d, a, x[i+ 6], 23, 76029189);
  146. a := hh(a, b, c, d, x[i+ 9], 4 , -640364487);
  147. d := hh(d, a, b, c, x[i+12], 11, -421815835);
  148. c := hh(c, d, a, b, x[i+15], 16, 530742520);
  149. b := hh(b, c, d, a, x[i+ 2], 23, -995338651);
  150.  
  151. a := ii(a, b, c, d, x[i+ 0], 6 , -198630844);
  152. d := ii(d, a, b, c, x[i+ 7], 10, 1126891415);
  153. c := ii(c, d, a, b, x[i+14], 15, -1416354905);
  154. b := ii(b, c, d, a, x[i+ 5], 21, -57434055);
  155. a := ii(a, b, c, d, x[i+12], 6 , 1700485571);
  156. d := ii(d, a, b, c, x[i+ 3], 10, -1894986606);
  157. c := ii(c, d, a, b, x[i+10], 15, -1051523);
  158. b := ii(b, c, d, a, x[i+ 1], 21, -2054922799);
  159. a := ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
  160. d := ii(d, a, b, c, x[i+15], 10, -30611744);
  161. c := ii(c, d, a, b, x[i+ 6], 15, -1560198380);
  162. b := ii(b, c, d, a, x[i+13], 21, 1309151649);
  163. a := ii(a, b, c, d, x[i+ 4], 6 , -145523070);
  164. d := ii(d, a, b, c, x[i+11], 10, -1120210379);
  165. c := ii(c, d, a, b, x[i+ 2], 15, 718787259);
  166. b := ii(b, c, d, a, x[i+ 9], 21, -343485551);
  167.  
  168. a := add(a, olda);
  169. b := add(b, oldb);
  170. c := add(c, oldc);
  171. d := add(d, oldd);
  172.  
  173. inc(i,16);
  174. end;
  175. Result:= rhex(a) + rhex(b) + rhex(c) + rhex(d);
  176. end;
  177.  
  178. end.
  179.  



Şimdi formun USES kısmına md5 i ekledikten sonra form üzerine 1 adet Tedit 1 adet Tlabel 1 adette Tbutton koyun Tbutton un onClick olayına aşağıdaki kodu yazmanız yeterli olucak...

Edit1 e yazmış olduğunuzu label ın caption ında MD5 olarak Şifreleyip göstericektir...


Kod: Delphi
  1.  Label1.Caption := MD_5(Edit1.Text);





« Son Düzenleme: 01 Şubat 2010 13:38:01 by barutali »



Amatör Küme Programcı

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 266
  • Rep: +0/-0
  • Cinsiyet: Bay
    • Arma Ticari Sistem
Ynt: md5 Şifreleme
« Yanıtla #1 : 29 Ocak 2010 23:24:12 »
Hocam Kolay Gelsin,

Ben denedim fakat Dephi7 'de 92 no'lu satırda (while i<length(x) do=""> olan satır) hata verdi.

Çalışan bir örneğiniz varsa gönderebilirmisiniz?

Teşekkürler.

Knowledge is power (Bilgi Güçtür)

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: md5 Şifreleme
« Yanıtla #2 : 30 Ocak 2010 09:09:24 »
bu kod renklendiriciyle ilgli bi sorun var :S:S

="">  bu kısmı silerek deneyin ..



Amatör Küme Programcı

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 266
  • Rep: +0/-0
  • Cinsiyet: Bay
    • Arma Ticari Sistem
Ynt: md5 Şifreleme
« Yanıtla #3 : 31 Ocak 2010 00:54:04 »
Evet hocam düzeldi.

Tabi geleneksel olarak 2. soru, geri nasıl alacağız?

Örneğin bir veriyi md5 ile şifreleyip veri tabanına kaydettik diyelim. O kaydı geri çağırdığımızda nasıl tekrar ilk haline döndürebiliriz.

Bu sorunumada yardımcı olursanız çok güzel bir şifreleme örneği olacak.

Saygılar, teşekkürler.
Knowledge is power (Bilgi Güçtür)

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: md5 Şifreleme
« Yanıtla #4 : 31 Ocak 2010 10:18:06 »
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 ...



Amatör Küme Programcı

Çevrimdışı cakirr42

  • Global Moderatör
  • *****
  • İleti: 951
  • Rep: +5/-2
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • ÜYELİK.TK
Ynt: md5 Şifreleme
« Yanıtla #5 : 31 Ocak 2010 11:07:22 »
saol ali abi güzel bi paylaşım olmuş ama bunu delphiye attığımda her satırın başında # çıktı bu kod renklendirici başımıza dert olcak :D ama bununla ilgili bi ufak yazılım yaparsak iyi olur kodu önce ona atarız o #leri siler sonrada delphiye
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: md5 Şifreleme
« Yanıtla #6 : 31 Ocak 2010 15:53:12 »

buna tıklarsan gerek kalmaz ...



Amatör Küme Programcı

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 266
  • Rep: +0/-0
  • Cinsiyet: Bay
    • Arma Ticari Sistem
Ynt: md5 Şifreleme
« Yanıtla #7 : 31 Ocak 2010 21:04:54 »
Girilen şifreyi md5 e çevirip db deki md5 ile karşılaştırınca oluyor. Teşekkürler.

Ben dahil kimse şifreyi göremiyor. (Tam güvenlik).

Unutulan ve şifre için ise bir yöntem buldum. Bilinen bir kelimeyi örneğin program adını md5 ile şifreleyip, şifresini unutan kullanıcının Db 'deki şifre alanına update etmek şeklinde bir çözümüm olacak. Böylece şifresini unutan kullanıcının yeni şifresi program adı yada belirlediğimiz kelime olacaktır.

Her kese kolay gelsin.
Knowledge is power (Bilgi Güçtür)

Çevrimdışı cakirr42

  • Global Moderatör
  • *****
  • İleti: 951
  • Rep: +5/-2
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • ÜYELİK.TK
Ynt: md5 Şifreleme
« Yanıtla #8 : 31 Ocak 2010 22:43:56 »
o tuşu bilmiyodum :( 200 satırlık kodda parmaklarım yoruldu :D
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı muratboy31

  • Kıdemli Üye
  • *****
  • İleti: 115
  • Rep: +0/-0
Ynt: md5 Şifreleme
« Yanıtla #9 : 08 Şubat 2010 14:19:48 »
peki md5 i normale nasıl tekrar döndürebilirim...
yane mesela murat ı md5 ile dönüştürdüm ve bu çıktı 5f311cc69460666eecc3e7289d14c2e8 peki ben bunu tekrar nasıl murat yapabilirim acaba ?

Çevrimdışı cakirr42

  • Global Moderatör
  • *****
  • İleti: 951
  • Rep: +5/-2
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • ÜYELİK.TK
Ynt: md5 Şifreleme
« Yanıtla #10 : 08 Şubat 2010 14:26:02 »
Alıntı
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 ...

bunun cevabı verildi zaten...
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı muratboy31

  • Kıdemli Üye
  • *****
  • İleti: 115
  • Rep: +0/-0
Ynt: md5 Şifreleme
« Yanıtla #11 : 08 Şubat 2010 15:13:19 »
hayır ama ben karşılaştırma yapmayacam... mesela form açıldığımda edit 1 e md5 ile code edilmiş bir yazının normal halini yazdırmak istiyorum yane md5 decode gibi ama eğer tek yönlüyse muhtemelen mümkün değildir...

Çevrimdışı cakirr42

  • Global Moderatör
  • *****
  • İleti: 951
  • Rep: +5/-2
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • ÜYELİK.TK
Ynt: md5 Şifreleme
« Yanıtla #12 : 08 Şubat 2010 16:10:24 »
yani ozaman ya şifrelemeyin yada başka bir yöntem ile şifreleyin çünkü md5 güvenlik için kullanıldığından dolayı şifre çözülemez
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı muratboy31

  • Kıdemli Üye
  • *****
  • İleti: 115
  • Rep: +0/-0
Ynt: md5 Şifreleme
« Yanıtla #13 : 08 Şubat 2010 16:13:07 »
blowfish yada buna benzer örnekler varmı forumda ?

Çevrimdışı cakirr42

  • Global Moderatör
  • *****
  • İleti: 951
  • Rep: +5/-2
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • ÜYELİK.TK
Ynt: md5 Şifreleme
« Yanıtla #14 : 08 Şubat 2010 16:14:46 »
bilemiyorum forumda olmasa bile google a yaz bulursun ;)
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"