2015-01-29 3 views
0

Я собираюсь создать API, который связывается с созданной Drupal 7 сгенерированной базой данных. Таким образом, одной из функций является функция login/authenticate. Итак, чтобы это произошло, мне пришлось сначала разобраться с механизмом хэширования паролей. Я тщательно проанализировал файл «Включает/password.inc» и скопировал все функции в свой корень API. Итак, хорошей новостью является то, что я могу генерировать хешированный пароль, который выглядит точно так же, как и созданные drupal, длиной 55 символов и начинаются с $ S $. Проблема, с которой я сталкиваюсь, касается метода аутентификации, а точнее user_check_password, который принимает простой текстовый пароль и пользовательский объект и проверяет, совпадает ли хэширование данного текстового пароля с хэшированием, уже сохраненным в базе данных для этого пользователя. Таким образом, он возвращает всегда false (нет совпадения), даже если пароль правильный, за исключением случаев, когда я изменяю значение пароля хеширования (сохраненного уже в БД с помощью drupal) со значением, сгенерированным с помощью моего скрипта, в этом случае функция возвращает true (совпадение), если пароль верен. Как вы думаете, может ли это возникнуть?Алгоритм хэширования Drupal

ответ

0

Первое, что приходит на ум: вы используете ту же «соль» (drupal_hash_salt), как определено в файле settings.php в Drupal?

+0

Я также думал, что они используют его в хэшировании паролей, но в последнее время я понял, что они используют другой ключ соли, который генерируется с помощью функции _password_generate_salt(). – arakibi

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