Направете си услуга и използвайте стандартна библиотека за хеширане на вашите пароли.
Тъй като сигурността обикновено е много по-сложна и с по-невидими възможности за прецакане, отколкото повечето програмисти биха могли да се справят сами, използването на стандартна библиотека почти винаги е най-лесната и най-сигурната (ако не и единствената) налична опция.
Стандартната библиотека :
Разгледайте:Преносима PHP рамка за хеширане на пароли
:phpass и се уверете, че използвате CRYPT_BLOWFISH
алгоритъм, ако изобщо е възможно.
пример за код, използващ phpass (v0.2):
require('PasswordHash.php');
$pwdHasher = new PasswordHash(8, FALSE);
// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );
// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
echo 'password correct';
} else {
echo 'wrong credentials';
}
PHPass е внедрен в някои доста известни проекти:
- phpBB3
- WordPress 2.5+, както и bbPress
- изданието на Drupal 7 (модулът е наличен за Drupal 5 и 6)
- други
Хубавото е, че не е нужно да се притеснявате за подробностите, тези подробности са програмирани от хора с опит и прегледани от много хора в интернет.
Каквото и да направите, ако решите „Аз ще го направя сам, благодаря ', не използвайте MD5
вечета . Това е приятен алгоритъм за хеширане, но напълно счупен за целите на сигурността .
В момента се използва crypt
, с CRYPT_BLOWFISH е най-добрата практика.
CRYPT_BLOWFISH в PHP е реализация на хеша Bcrypt. Bcrypt се основава на блоковия шифър Blowfish, използвайки скъпата настройка на ключовете за забавяне на алгоритъма.
За повече информация относно схемите за съхранение на пароли можете също да прочетете Jeff Публикация в блога за това:Вероятно съхранявате пароли неправилно