Kullanıcı

Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.
03 Eylül 2010 13:58:15

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Sohbet Penceresi

Son 5 Notlar:

25 AÄŸustos 2010 16:11:57
slm beyler
27 AÄŸustos 2010 10:00:56
arkadaşlar delphi ile fax nasıl gönderilir şeklinde konuya cevaplarınızı bekliyorum...
  XLG
01 Eylül 2010 17:00:37
arkdaÅŸlar admin kim ya
  XLG
01 Eylül 2010 17:00:55
bi maruzatım olacak ta
Bugün, 11:14:44
Arkadaşlar SUBHAN adlı arkadaşımızdan haberi olan var mı? Bir yıldır hiç siteye girmemiş? Sitesi de borçtan kapanmış. Başına bir şey mi geldi?

Show 50 latest

Gönderen Konu: md5 Åžifreleme  (Okunma sayısı 1650 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı barutali

  • Global Moderatör
  • *****
  • İleti: 1.340
  • Rep: +38/-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) [Seç]
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 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) [Seç]
Label1.Caption := MD_5(Edit1.Text);




« Son Düzenleme: 01 Åžubat 2010 13:38:01 by barutali »
En İyi Öğrenme Metodu Yaparak ve Yaşayaraktır.
M.Kemal ATATÜRK

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 151
  • 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

  • Global Moderatör
  • *****
  • İleti: 1.340
  • Rep: +38/-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 ..
En İyi Öğrenme Metodu Yaparak ve Yaşayaraktır.
M.Kemal ATATÜRK

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 151
  • 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

  • Global Moderatör
  • *****
  • İleti: 1.340
  • Rep: +38/-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 ...
En İyi Öğrenme Metodu Yaparak ve Yaşayaraktır.
M.Kemal ATATÜRK

Çevrimdışı cakirr42

  • Kıdemli Üye
  • *****
  • İleti: 263
  • Rep: +1/-0
  • Cinsiyet: Bay
  • Halimi Anlayan Yok YaÅŸamak Ne Zor İş İmiÅŸ
    • ÇAKIRSOFT
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

Çevrimdışı barutali

  • Global Moderatör
  • *****
  • İleti: 1.340
  • Rep: +38/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: md5 Åžifreleme
« Yanıtla #6 : 31 Ocak 2010 15:53:12 »

buna tıklarsan gerek kalmaz ...
En İyi Öğrenme Metodu Yaparak ve Yaşayaraktır.
M.Kemal ATATÜRK

Çevrimdışı selchuk

  • Kıdemli Üye
  • *****
  • İleti: 151
  • 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

  • Kıdemli Üye
  • *****
  • İleti: 263
  • Rep: +1/-0
  • Cinsiyet: Bay
  • Halimi Anlayan Yok YaÅŸamak Ne Zor İş İmiÅŸ
    • ÇAKIRSOFT
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

Ç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

  • Kıdemli Üye
  • *****
  • İleti: 263
  • Rep: +1/-0
  • Cinsiyet: Bay
  • Halimi Anlayan Yok YaÅŸamak Ne Zor İş İmiÅŸ
    • ÇAKIRSOFT
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...

Ç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

  • Kıdemli Üye
  • *****
  • İleti: 263
  • Rep: +1/-0
  • Cinsiyet: Bay
  • Halimi Anlayan Yok YaÅŸamak Ne Zor İş İmiÅŸ
    • ÇAKIRSOFT
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

Ç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

  • Kıdemli Üye
  • *****
  • İleti: 263
  • Rep: +1/-0
  • Cinsiyet: Bay
  • Halimi Anlayan Yok YaÅŸamak Ne Zor İş İmiÅŸ
    • ÇAKIRSOFT
Ynt: md5 Åžifreleme
« Yanıtla #14 : 08 Åžubat 2010 16:14:46 »
bilemiyorum forumda olmasa bile google a yaz bulursun ;)