When users register, should I store their email in the db as is or hash it. I want to be able to decrypt it later, so should I use md5?
teşekkür ederim!
No, md5()
- olan one-way hash function. Bunun değerini şifresini çözemez. Genellikle deşifre edilmesi gerekmez şifreler için kullanılır. Bunun yerine sizin gibi karşılaştırabilirsiniz sağlamalarının:
$salt = "adding some secret to increasse security";
if (md5($user_password . $salt) == $user_password_hash_from_db) {
## password is ok
}
Eğer değer şifresini edebilmek istiyorsanız, o zaman yerine crypt
a> php işlevini kullanın. Ancak yüklü ek modüller gerekebilir.
Herhangi bir şekilde ben e-crypt için herhangi bir pratik bir neden görmüyorum.
Ben birisi veritabanına erişim alır eğer dünyaya izin verdiler kişisel bilgi haline gelir beri e-postalar, bir (küçük) bilgi güvenliği sorunu olduğunu kabul, ama bir iki yönlü bir şifreleme / şifre çözme yöntemini isteyen olacak Ivan belirtildiği gibi, dışarı geri e-postaları çekmek mümkün.
Sadece temel MD5 hash artık güvenli bir karma olduğunu unutmayın.
Wikipedia çok farklı şekillerde söylediği gibi, artık güvenli (http://en.wikipedia.org/wiki/MD5):
US-CERT of the U. S. Department of Homeland Security said MD5 "should be considered cryptographically broken and unsuitable for further use,"[7] and most U.S. government applications will be required to move to the SHA-2 family of hash functions by 2010.[8]
Ben onunla bir büyük sorun md5 karma gökkuşağı tabloları kadar çıplak md5 zorlayarak kaba çok duyarlı olduğunu, bu gün üzerinde olduğunu düşünüyorum.
Bu küçük obsfucation ve karmaşık veri setleri hijyen için yararlı bir araç düşünün, ama artık gerçek anlamda güvenli karma değil. Ben hiçbir cryptographer değilim ama, bir tuz kullanılarak ve daha güvenli hale getirmek için iç içe md5 hashings gerçekleştirerek ikisi gibi aracılığıyla atlayabilir özel çemberler olabilir. Sen iyi bir genel şifreleme çözümleri için this gibi diğer SO konuları kontrol etmek isteyebilirsiniz.
Eğer md5 kullandığınızda bunu şifresini çözmek mümkün olmayacaktır. md5 bir one-way-hash fonksiyonudur.
Daha sonra bunları deşifre etmek istiyorsanız sadece hashes dizeleri, orijinal verileri kaybetmek beri, MD5, bir seçenek olmayacaktır.
Ben bunun için yerleşik PHP şifreleme fonksiyonları bazı denemenizi öneririz.