Проверка пароля 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.


person moonvader    schedule 07.01.2016    source источник


Ответы (1)


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

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

person Robert Calove    schedule 07.01.2016