2013-09-30 26 views
12

: password_hash bu fonksiyon buradan bu basit işlevi bulunan alternatif bir yol arama yaptıktan sonra (PHP 5 >= 5.5.0)password_hash() for (PHP 5 <5.5.0) 'e bir alternatif nedir? kılavuzuna göre

için kullanılabilir: http://www.sitepoint.com/password-hashing-in-php/

function generateHash($password) { 
    if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) { 
     $salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22); 
     return crypt($password, $salt); 
    } 
} 

kodumu yönetebilir kullanmadan önce function_exists kullanarak Ama benim sorum, güvenli ya da değil, ya da PHP eski sürümlerinde herhangi bir alternatif var alternatif kod hakkında mı? PHP sürümleri için

+2

'crypt()' bir şifre karma üretecektir ... bir tuz oluşturmanıza gerek yoktur, ancak bu fonksiyonda sahip olduğunuz tüm ekstra şeyler – upful

+0

A Openwall'un [Taşınabilir PHP şifreleme çerçevesi] (http://www.openwall.com/phpass/) (PHPass). Kullanıcı şifreleriyle ilgili bir dizi ortak saldırıya karşı sertleştirilmiştir. – jww

cevap

16

< 5.3.7, ben tavsiye ederim:

https://github.com/ircmaxell/password_compat

Kendi tuzları oluşturuluyor: PHP sürümleri> = 5.3.7, kullanımı için

http://www.openwall.com/phpass/

Bir çok şeyi bilir, çünkü iyi, uygun bir tuz çok fazla entropiye ihtiyaç duyar. PHP'de bu tuzu üretmek zahmetlidir, bu nedenle genellikle /dev/urandom veya openssl_random_pseudo_bytes gibi sizin için bu dizeyi sağlamak için diğer kaynaklara bağlı olarak sona erersiniz. İnan bana, bu ciddi bir araştırma ve değerlendirme yapmadan kendini denemek istediğin bir şey değil. Yeni password_* API kullanarak

önerilir, ancak PHPass devreye giriyor PHP, eski sürümlerini desteklemek için gerekirse o sorunlu olabilir. Gotta için PHP 5.2

+0

Teşekkür ederim, ben password_compact denedim ama phppass bir cazibe gibi çalıştı böylece PHP 5.4 ile barındırma sunucusunda bulunamadı gerekli bir koşulu vardır. Https://github.com/ircmaxell/password_compat hakkında daha fazla bilgi için –

6

ile aylık hosting başına bu $ 1 hate PHP 5.5.0 sürümünden önce, 5.5.0'dan önceki sürümlerde, PHP 5.5.0+ sürümünde geliştirilmiş olan ve kasıtlı olarak geriye dönük uyumluluk sağlaması amaçlanan aynı kişi tarafından yazılan https://github.com/ircmaxell/password_compat adresindeki password_hash uygulamasının bir uygulamasını bulabilirsiniz.

+1

+1; cevabınız ne kadar yineleniyorsa :) –