Passwordhash çözümleme

Katılım
8 Şubat 2016
Mesajlar
100
Daha fazla  
Cinsiyet
Erkek
Merhaba,
Asp.net MVC çalışıyorum ve kayıt yaptığım kullanıcının şifresi şifrelenmiş olarak sistemde tutuluyor. Bu şifrenin çözümlenmesi için nasıl bir fonksiyon kullanmalıyım. İnternette biraz araştırdım ingilizcemin de yeterli seviyede olmamasından dolayı çözüm bulamadım. Yardımcı olabilirseniz sevinirim.
 
Login işlemi için e-posta ve şifre ile giriş yaptırmak istiyorum. Şu şekilde yapıyorum;

Usermanager. Findbyemail(model. Email); ile giriş yapacak kullanıcının bilgilerini çekip passwordhashte tutulan şifre ile formdan gelecek olan şifre kontrolü sağlamak istiyorum.

Passwordhash'i bir işleme sokmadan formdan gelen şifre ile karşılaştırınca eşleyemiyor. O yüzden çözümleme gibi bir durum var mı diye merak ettim yoksa tabloda ekstra bir password daha bulundurmam gerekiyor galiba.
 
O yüzden çözümleme gibi bir durum var mı diye merak ettim yoksa tabloda ekstra bir password daha bulundurmam gerekiyor galiba.
Hayır. Hashli hali tabloda tutulur. Login işleminde de şifre hashlenir ve tablodan kontrol edilir. Hashlerin aynı olması lazım. Hash yöntemi de aynı olmalı. SHA256 ile kaydedip SHA512 ile login yapılmaz yani.

Şifre tabloda hashli tutulur. Hiçbir zaman çözme gibi bir girişimde bulunulmaz. Daima hashlenmiş hali ile işlem yapılır. Etik.

Neyle hashlediyseniz o tool ile decryptleyin ve compare edin
SHA256 gibi hash algoritmaları çözülemez.
 
Login işlemi için e-posta ve şifre ile giriş yaptırmak istiyorum. Şu şekilde yapıyorum;

Usermanager. Findbyemail(model. Email); ile giriş yapacak kullanıcının bilgilerini çekip passwordhashte tutulan şifre ile formdan gelecek olan şifre kontrolü sağlamak istiyorum.

Passwordhash'i bir işleme sokmadan formdan gelen şifre ile karşılaştırınca eşleyemiyor. O yüzden çözümleme gibi bir durum var mı diye merak ettim yoksa tabloda ekstra bir password daha bulundurmam gerekiyor galiba.
Şifrelerken kullandığın yöntemi, giriş yaparken de kullanacaksın.
Kullanıcının verilerini alınca, tablodaki hash'li parola ile, inputa girilmiş hash'siz parolayı back-end'de kontrol edeceksin.
Kullanıcının girdiği parolanın şifrelenmiş haliyle, tablodaki şifrelenmiş parolayı eşleştirip aynıysa login yaptıracaksın, değilse hata verdireceksin.

Dili bilmediğim için PHP'den örnek vereyim:

PHP:
<?php
    $parola = $_POST['parola'];

    $sifrelenmisparola = md5($parola); //şifreleme metodu sana kalmış
    if($veritabanindakiparola != $sifrelenmisparola) {
        echo "Şifre hatalı";
    } else {
        echo "Şifre doğru";
    }
?>
 
Hashing "one-way" calismalidir. Bi-directional hashing algoritmalari olsa da bunlar da fixed size hash uretemezler 1-1 ve orten matematiksel fonksiyonlarin guzelligi sebebiyle.

O yuzden password'u hashleyeyim sonra "geri" cevireyim diye bir sey yok.
Simetrik encryption ile zaten pw saklanmaz.
Bu bir aradan ciksin.

---

Piyasada kullanilan ve bu konuda da ornegi gecen cogu hash fonksiyonu guvenli degildir. Kimisi cok hizlidir ( brute force yatkinligi ) , kimisi collision'a cok aciktir vs vs. Dogru hash fonksiyonunu secmek onemli. SHA1/2 sifrelerin bulundugu veritabanindaki sifrelerin plaintext halini 1 haftada bulursunuz brute-force ile. ( bkz yemeksepeti )

Ek olarak "salt" kullanarak randomizasyon saglamazsan en guclu/uygun hashing algoritmasini kullansan dahi risk altinda kalirsin. Ayni parola, ayni islemden sonra ayni sonucu vermemeli, belirli bir varyant uretmelidir.

---

Sonuc olarak olmasi gereken hash _ salt kombinasyonunu bir ya da iki farkli yerde saklayarak login islemi sirasinda girilen sifre ile benzer kombinasyonun yakalanip yakalanamayacagini hesaplamaktir. Salt round'u guvenlik + hiz oranini optimize edecek sekilde belirlersin.
 

Technopat Haberler

Geri
Yukarı