криптография — PHP 5.4 проверить оба пароля

У меня есть PHP версии 5.4 на моем ПК, поэтому я не могу использовать password_hash() и я использовал crypt() вместо.

Но следующая проблема — как проверить пароли, если они совпадают?

В документации PHP сказано, что если вы используете crypt() лучший способ использовать в качестве модификатора пароля hash_equals() но только PHP 5.5.

Я всегда получаю:

Неустранимая ошибка: вызов неопределенной функции hash_equals () в …

1

Решение

Как вы упоминали, php 5.4 пока не имеет этих функций, поэтому у вас есть две возможности использовать эти очень полезные функции:

Лучший способ:

Обновите до php 5.5 / 5.6 и используйте тогда нативную библиотеку

Если это невозможно:

Вы можете использовать эту библиотеку:

https://github.com/ircmaxell/password_compat

Библиотека обеспечивает прямую совместимость с функциями password_ *, над которыми работали в PHP 5.5.

3

Другие решения

Вы можете просто сравнить их оба так:

<?php
$the_password= crypt('12345', 'aasddas');
$user_entered_pass='125';
if(crypt($user_entered_pass,'aasddas') == $the_password){
echo "right";
}else{
echo "wrong";
}
?>
2

Короткий ответ: вот что password_compat для, так что используйте его.

В документации PHP сказано, что если вы используете crypt() лучший способ использовать в качестве модификатора пароля hash_equals() но только PHP 5.5.

  1. Если вы следуете вменяемым советам, значит, вы не используете crypt()вы используете password_hash() с password_verify().
  2. hash_equals() был добавлен в PHP 5.6, а не 5.5.
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector