md5 yada sha1 ile kullanıcı şifreleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

md5 yada sha1 ile kullanıcı şifreleme

Mesaj gönderen ikutluay »

bir programda kullanıcı kontrolü koymam gerek. srun şu. vt mysql ve user şifrelerinide açık tutmak sakıncalı. kendi yazdığım rutinlerde var, md5 sha1 fonksiyonlarıda var ve mysql in kendi fonksiyonlarıda. ancak sorun şu ;

kullanıcı ilk kaydederken ve post ederken parolayı md5lemek sorun değil. ancak kullanıcı kaydı yeniden düzeleniyorken ne olacak. hadi dsappend ise şifrele edit ise o alana dokunma dedik, bu sefer parol değiştirme olayı var.

elimde şu brezilyalılrın yazdığı user componentide var ama ben heryerde kullancağım uzun vadeli bir çözüm olsun sitiyorum. hemde kendi yaptığım...
bu iş konusunda siz lsanız ne yapar nasıl bir teknik uygulardınız.

not: hazır kod derdinde değilim. öneri bekliyorum
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: md5 yada sha1 ile kullanıcı şifreleme

Mesaj gönderen emin_as »

Kod: Tümünü seç

eski_sifre:=dataset.fieldbyname('password').asstring; // veritabaninda tutulan sifre
sifre:=edit1.text;   // eski sifre kismi
yeni_sifre1:=edit2.text; // yeni sifre 
yeni_sifre2:=edit3.text;  // yeni sifre bir aksiligie karsi tekrar giriliyor
Yukarıdaki gibi degerleri aliyoruz.

Kod: Tümünü seç

if yeni_sifre1 <>  yeni_sifre2 then 
begin
  ShowMessage('İki kez girdiginiz yeni şifre aynı değil.');
  exit;
end;
İki kez vermesi gereken şifre tutmuyor

Kod: Tümünü seç

if md5(sifre)<>eski_sifre then  // md5 le sifreleyip veri tabanındakiyle karşılaştırıyoruz.
begin
   ShowMessage('Verilen şifre geçersiz.');
   exit;
end;
Veritabanındaki şifre zaten md5 li, biz eski şifreyi sorup, md5 liyoruz, sonuçta bu şifrelerin aynı olması gerekiyor. Aynı değillerse çıkıyoruz.

Kod: Tümünü seç

  dataset1.Edt;
  dataset1.Fieldbyname('password').Asstring:=md5(yeni_sifre1);
  dataset1.Post;
Bilgileri de güncelledik. Bu işlemi dogrudan db bileşenleriyle yapamayız, ama özel bir pencereyle düzenleyebiliriz.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: md5 yada sha1 ile kullanıcı şifreleme

Mesaj gönderen ikutluay »

güzel öneriler bunlar. peki yetkilendirme için sence ne yapmalı. ben genel olarak yaptığımı söyleyeyim basitce user grup diye bir alan tutup bunun değerini form girişlerinde kontrol ediyorum. logo gibi form tabları seviyesinde kontrole imkanı yok böyle ama yöntem yöntemdir. peki sizlerde durum ne
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: md5 yada sha1 ile kullanıcı şifreleme

Mesaj gönderen emin_as »

Kullanıcı yetkilendirmeleri programdan programa değişir. Bazı programlarda bazı bölümlere girmesine izin verip, vermeme sözkonusudur. Bazılarında ise kaydı kimin girdiğine bakarak yetkilendirme yapmak gerekir.

Genel olarak kullanıcı tablosunda bir kullanıcı türü (kullanıcı, kısıtlı yönetici, yönetici) bilgisi tutuyorum, sadece yönetici yedekleme-program ayarları gibi bölümlere giriyor, kısıtlı yönetici ise kendine ait olmayan kayıtları da düzenleyebiliyor, kullanıcı ise sadece kendi kayıtları üzerinde işlem yapıyor.

Önemli olan programın nasıl bir yetkilendirme gerektirdiğidir.

Şifreleri veritabanında açık tutuyorum, genellikle verdikleri şifreleri unuttukları için yetkili kişilere bir de bakım.exe diye dosyaları dogrudan okuyabilecekleri bir program veriyorum.
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: md5 yada sha1 ile kullanıcı şifreleme

Mesaj gönderen barutali »

şifreyi değiştrirken yeni girilen değeri yeniden md5 leyip md5 değerleri karşılaştırmakla bu sorunu alayabilirsiniz diye düşünüyorum ..

örnek :
pass1 : abcd
pass1 md5 hali : abcde23456789

passdeğiştir :

eski şifre yi girerken adam abcd diye giricek siz bunu md5 e çevirceksiniz ve

pass md5 li hali <> dbdeki md5 değer
mesaj( ESKİ ŞİFRENİZ UYUŞMUYOR )

Soruyu yanlış anladıysam beni dikkate almayın :D Uykusuz bi haldeyim ...
amatör küme programcı :D
Cevapla