2013-09-14 3 views
0

Я слышал, что плохо хранить пароли в обычном тексте в базе данных, поэтому я ищу хороший безопасный способ хранения прохождений. Я провел некоторое исследование и получил рабочий пример.good php mysql password hashing

$cost =10; 
$salt =strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.'); 
$salt = sprintf("$2a$%02d$",$cost).$salt; 
$hash = crypt($password,$salt); 

$ hash - окончательная строка, которая сохраняется в базе данных. Чтобы получить хешированный пароль, у меня есть // $ пароль = передать из DB $ checkedpass = pass from the login $ hash = crypt ($ password, $ enterdPass); если ($ enterdPass == $ хэш) // Передает правильность ввода

Я не ищу для лучших когда-либо хэширования только то, что является достаточно хорошим, чтобы потушить в Интернете, как небольшая компания или что-то

+1

вы можете использовать PHP 5.5? –

+0

[This] (http://stackoverflow.com/a/1581919/1438393) ответ может помочь. –

+0

'$ enterdPass', конечно, должен быть использован с использованием того же метода. –

ответ

3

PHP имеет хороший API хэширования паролей начиная с версии 5.5, и он был backported для использования с версиями начиная с 5.3.7.

Посмотрите на documentation и library вы можете использовать.

Это превосходная функция по сравнению с вашим текущим решением - разрешить хэши обновления пароля, если вы решите позже использовать более эффективный алгоритм или улучшить настройки.

пример:

$store_this = password_hash("rasmuslerdorf", PASSWORD_DEFAULT); 

$true === password_verify('rasmuslerdorf', $store_this); 
+0

Можете ли вы привести пример? –

+0

проверить изменения – castis

Смежные вопросы