Ne fonksiyon MySQL şifreleri karma için kullanılacak?

4 Cevap php

Bir şifre sütunu olan benim mysql veritabanında bir kullanıcı tablo var. Şu anda, ben veritabanında depolanması için kullanıcıların parola hash MD5 algoritması kullanır. Şimdi ben bir güvenlik vicdan insanım olduğunu düşünmek istiyorum. Onlar MD5 veya SHA/SHA1 karma yöntemleri önermiyoruz, ama bir alternatif sunmuyor MySQL dokümanlar okurken fark ettim.

Ne MySQL benim şifreleri hash en iyi yolu olurdu? Doğal PHP ve MySQL hem de desteklenen bir fonksiyon benim şimdiki uygulama ile ideal ve gerekli olacaktır.

Teşekkürler!

4 Cevap

Bu kadar bu gökkuşağı tablo saldırılara karşı savunmasız bırakır gibi bir gökkuşağı tablo precomputed hash değerleri bir tablo (just MD5 kullanmak gerektiğini, sen MD5 kullanmak gerektiğini zorunlu değil - şifreniz bile uzaktan ortak ya da basit olmadığını, saldırganın karma aramak için sadece gerekiyor ve o düz metin şifrenizi bilir).

Varolan herhangi bir gökkuşağı tablo yararsız olduğunu böylece en azından sadece şifreleri veritabanı için tamamen yeni bir gökkuşağı tablosu oluşturmak için saldırganın zorlayarak, her şifre için bir tuz eklemek gerekir.

Daha hala veritabanındaki her şifre için farklı bir tuz kullanmak için, bir saldırganın hatta tüm veritabanı için bir gökkuşağı tablo oluşturabilir ve ayrı ayrı her girişi çatlak var olamaz böylece, ile ilişkili kullanıcı adı söylüyorlar.

MD5 de çok hızlı bir algoritma. Bu çatlama geldiğinde hız düşman - her bir hacker yapar girişimi için uzun bir karma oluşturmak için gereken, o kadar uzun sürer. Her zaman sitenize bir kullanıcı oturum için (hiç değilse) ancak algılanabilir olurdu, ama o aynı kişi tarafından bir şifre kaba kuvvet için gereken süreyi artıracak yeni bir ek tuz ile şifresiz 100 kez karma gibi basit bir şey 100 kez.

Uzak, burada çok daha fazla ayrıntı: http://www.codinghorror.com/blog/archives/000953.html

MD5 bugünün standartlarına göre zayıf olduğu kabul edilir. Hala MD5 ile yapılan bir karma çatlamak için bazı işler alacağını, ancak kaba kuvvet ile şifre tahmin birkaç kat daha kolay. İdeal olarak, bir karma çatlama kaba kuvvet daha kolay olmamalıdır.

SHA1 da kaba kuvvet kullanarak şifreyi tahmin olana göre daha kolay kabul edilir.

Aslında OpenSSL'de gelen SHA224, SHA256, SHA384 ve SHA512 fonksiyonları yüzey MySQL için bir yama katkıda bulunmuştur. Bu şifre karma (aslında SHA256 ve üstü) için NIST tarafından tavsiye edilmektedir.

Ben hatırlamıyorum eğer benim yama, daha sonra MySQL mühendisler tarafından bitirildi ve MySQL 6.0.5 dahildir ve.

Bir önceki MySQL sürümü (ve kim değil) kullanıyorsanız, o zaman muhtemelen ev sahibi dilinizde güçlü kıyım fonksiyonları bir uygulamasını kullanabilirsiniz. PHP örneğin hash() işlevi vardır. Eğer uygulamada karma yapmak ve veritabanına çıkan ileti dize kaydedebilirsiniz.

De, salting yapmak için unutmayın!

MD5 ve SHA-1, muhtemelen nedeniyle artık önerilmemektedir know attacks . But, they're still generally yeterli çoğu kullanım durumları için.

Eğer var plenty of options Orada ettik - Eğer daha fazla seçenek arıyorsanız, sadece PHP'nin hash functions kullanın.

Gerçekten istediğini al. Ben MD5 kullanmak ()

http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html