Ben PHP ve CodeIgniter Framework ile MySQL veritabanı bağlıyorum. Ben veritabanında şifreli benim şifreleri saklamak istiyorum ve bunu yapmak için en iyi yolu bilmek istiyorum.
Bir üst düzey bakış itibaren -, karma şifrelemek yok. Ve sen, Bcrypt kullanabilirsiniz eğer. Here's a long article explaining why BCrypt ve neden karma.
Şifreleri şifreleyerek kötü bir fikirdir. Biri veritabanı alırsa, muhtemelen siz de şifreleri şifrelemek için kullanılan anahtarı almak için gidiyoruz.
The real solution is to hash, salt, and then store the passwords. Jeff Atwood has an awesome post on this: http://www.codinghorror.com/blog/archives/000953.html
And here is one discussing "rainbow tables," massive tables of words with their MD5 sums: http://www.codinghorror.com/blog/archives/000949.html
En iyi yolu, o bu kolay ve güvenli hem de kullanımı olduğunu phpass. PHP kurulum Blowfish yaparsa, bu Bcrypt kullanır; eğer bu olmuyorsa, bu md5 birden geçer kullanır. Her iki şekilde de, düz MD5 veya SHA1 daha güvenli.
$hasher = new PasswordHash(8, false);
// Before storing a password
$hash = $hasher->HashPassword($password);
// To check a password against a hash
if ($hasher->CheckPassword($password, $hash))
// $password and $hash match
Ben veritabanına koymadan önce her zaman şifreleri md5sum, ve daha sonra da db karşı onları kontrol etmek için şifre giriş girişimlerini md5sum. Sadece güvenlik için, ben maç her iki sürece ben hiç geri herhangi bir satır alamadım böylece nerede kullanıcı kimliği ile yan tümcesi (username) VE md5summed şifresini kullanarak bir seçme sorgusu yapmak.
Eğer şifre şaşırtmaca bu yöntem güven düzeyi gerekiyorsa Ayrıca MySQL interanlly bu parolaları üzerine md5summing kullanır.
Bir müzakere işlevini kullanın; MD5 cezası yapacağız. Şifre tutmayın, karma saklayın. Ardından, kullanıcıların oturum girdikleri Parola karma ve veritabanındaki karma karşılaştırmak için; sağlamalarının maç varsa, onlar yasal.
Eğer karma önce Ayrıca, şifre bir tuz ekleyin. Bu sadece etki alanı adı veya app benzersiz bazı diğer veriler gibi, şifre için bir dize ekleme kadar kolay olabilir. Bu sağlamalarının karşı gökkuşağı tabloları kullanarak korsanları engeller.
Bu da bazı kullanım olabilir: What’s the difference between SHA and MD5 (in PHP)?
hmm, ben karma, daha ne matematik yaylar dayalı birden şifreleri depolama ve doğrulama yazma anda akla
Ben gerçek bir seçim tho var, bu yüzden hiç bir parola depolama yapmak zorunda değilsiniz yerde Buradan I muhtemelen mümkün olduğunca OpenID ile gidersiniz. Bu şekilde ben uzmanlara kadar şifreler bırakabilir ve kullanıcıların zaten parti güvenilir.