Проверка пароля Moodle на внешнем скрипте

У меня Moodle 2.7. Хеши пользователей и пароли хранятся в таблице mdl_user. Я хочу создать внешний скрипт, который может проверять — правильно ли введены логин и пароль.

Как я вижу — эта версия Moodle использует некоторые функции PHP password_hash () генерировать хэш пароля.

Моя версия PHP 5.4, поэтому я не могу использовать эту функцию. Так что я использую эту библиотеку https://github.com/ircmaxell/password_compat с этим кодом

$password_hash = password_hash( $password , PASSWORD_DEFAULT, array());

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

0

Решение

Если эта функция похожа на password_hash() родной для PHP, соль генерируется вместе с хешем, и соль рандомизируется. Из-за этого, сравнивая результаты 2 отдельных вызовов password_hash() не собираются совпадать.

Функция, которую вы ищете password_verify(), который принимает введенный пароль и хэш в базе данных. Если это возвращает true, то пароли совпадают.

2

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

Других решений пока нет …

По вопросам рекламы [email protected]