En iyi uygulamalar: Tablodaki şifreleri saklamak için güvenli bir yöntem?

6 Cevap php

Ben PHP kullanıyorum. Ben şifreleri saklamak için yerel mysql fonksiyonu şifreyi () kullanmak için kullanılır. I şifresi () artık güvenli olmadığı söylendi. Ne PHP şifreleri saklamak için en iyi yöntem olacaktır? MD5 nedir?

6 Cevap

Updated Answer:

Aşağıda verdi orijinal cevabı bir kez en iyi uygulama olarak kabul edildi. Ancak, karma-bilgisayar teknolojisindeki gelişmeler bu programları da korumasız hale gelmiştir. İleriye yönelik olarak, yalnızca güvenli bir şifre karma şemaları, bcrypt ve PBKDF2 gibi yinelemeli sağlamalarının vardır. Tam bir tartışma için, bkz: Jeff Atwood's analysis.

Original Answer:

Ben ilk SHA256 gibi oldukça güçlü bir müzakere fonksiyonu ile hashing çıkan dize izledi şifreniz için salt değeri, prepending öneririz. Bu bariz (düz metin parolalar) karşı korur ve çok açık değildir (saldırı Rainbow tables kullanarak).

Eğer bu şekilde şifreleri saklamak varsa, not Bir kullanıcının kayıp şifre almak mümkün olacak unutmayın. Onlar sadece şifreleri sıfırlamak mümkün olacak. Bir one way hash kullanarak olacak çünkü bu. Ama bu sınırlama genellikle daha güvenli bir parola depolama sistemi için takas değer. Veritabanı tehlikeye bile, sizin kullanıcı şifreleri hala olurdu saldırgan tarafından kurtarmak için son derece zor ve muhtemelen kullanışsız olacaktır.

First Update:

Bu cevap yazma beri, ben de yukarıda belirtilen tüm özellikleri içeriyor, hangi tür bcrypt gibi yinelemeli kıyım planlarının farkında olmuştur. Ben minimum Herkes parolaları korumak için yapmanız gereken benim özgün yanıt stand by olacaktır. Eğer ekstra mil gitmek istiyorsanız Ancak, Bcrypt veya diğer bazı tekrarlanan karma şeması düşünün.

Sen tuz için şifre gerekir.

vBulletin şifreleri depolamak oldukça iyi bir iş yok. md5 (md5 (şifre) + tuz);

Diğer cevap tartışmak, VBulletin şifreleri karma bir felaket iş yok. Onların tuzu sadece 3 karakter uzunluğunda, sadece fractionally uygulamanızın güvenliğini artmaktadır.

Çıkış http://www.openwall.com/phpass/. Onlar her şifre için benzersiz bir uzun hash kullanarak, ve kez md5 binlerce şifreyi çalışan mükemmel bir iş yapmak. Bu orada php için en iyi karma sistemlerinden biridir.

Eğer imo, en iyi seçenek kullanıcının parolasını depolama önleyebilirsiniz. Kullanıcının kimliğini doğrulamak için (Stackoverflow gibi) OpenID kullanın. Ya da Live Doğrulama (http://dev.live.com/liveid/). Eğer gerçekten, gerçekten kullanıcıların kendinizi kimlik doğrulaması gerekiyorsa; Asaf onun cevabını ne diyor yok. :)

Tuz ve karma.

Biz genellikle karma tuz ve sonra sha512 gibi rasgele bir GUID kullanın.