2013-03-18 5 views
0

Я пишу часть PHP-кода, но не дает мне вывод, который я хочу;hash_pbkdf2 не дает выход

function passhash($unhashPass){ 

if(CRYPT_BLOWFISH != 1) { 
     throw new Exception("bcrypt not supported in this installation.); 
    } 
$salt = "test123"; 
$password = hash_pbkdf2 ("sha256", $unhashPass, $salt, 1, 20); 
echo $password; 
return $password; 
} 

Когда я положил эхо заявление для unhashpass или соли перед хэша он работает, но после того, как она ничего не делает, весь скрипт просто дает мне белый экран. Может кто-нибудь мне помочь :)?

Приветствия

ответ

0

Функция hash_pbkdf2() будет введена в PHP версии 5.5, так что я подозреваю, что ваш установленный PHP версия не поддерживает эту функцию. Перед вызовом функции вы проверяете, определен ли BCrypt, но функция hash_pbkdf2() (функция-основанная на пароле-ключ-функция) не имеет ничего общего с BCrypt.

Рекомендуется использовать хэш-пароли с помощью BCrypt, хотя в PHP версии 5.5 вы можете сделать это с помощью password_hash(). Для более ранних версий также существует compatibility pack.

// Hash a new password for storing in the database. 
// The function automatically generates a cryptographically safe salt. 
$hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT); 

// Check if the hash of the entered login password, matches the stored hash. 
// The salt and the cost factor will be extracted from $existingHashFromDb. 
$isPasswordCorrect = password_verify($password, $existingHashFromDb); 
+0

Да, но сайт работает на сервере, поэтому я не могу что-либо изменить в PHP-версии, однако я попробую с внешним файлом. Спасибо ! – tortilla

+0

@ user2156757 - Совместимый пакет, вероятно, является лучшим решением для более ранних версий PHP. – martinstoeckli

+0

Это просто внешние библиотеки, которые я могу разместить в htmldocs прямо? Я мог бы искать один из них: – tortilla

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