Какая функция возвращает хэш пароля, действительный для Drupal-6? - PullRequest
6 голосов
/ 08 октября 2010

Я хочу создать скрипт для вставки около 100 пользователей в базу данных Drupal 6 - их хэш имени пользователя, почты и пароля.

После прочтения о классе PHP, который использует Drupal 6, я не уверен, что смогу это осуществить. Мой метод состоял в том, чтобы отправить каждому пользователю сообщение типа «Здравствуйте, x! Ваш новый пароль - y», а затем вставить хешированный «y» в пользовательскую таблицу Drupal.

Я знаю, что Drupal возвращает md5. Но это не просто оригинальный пароль md5, а очень запутанный пароль (с использованием соли и других методов).

Я изучил Переносимую инфраструктуру хэширования паролей PHP Использование Drupal, но я не думаю, что она работает только с методом copy + paste.

Итак, мой вопрос: могу ли я сделать функцию PHP, которая возвращает действительный хэш пароля Drupal 6, чтобы вставить его в свою пользовательскую таблицу?

Ответы [ 3 ]

7 голосов
/ 11 октября 2010

На самом деле, Drupal 6 не использует любую соль для вычисления хэша пароля. Это просто md5 пароля

Вы можете попробовать это для себя. Установите пароль на что-нибудь.

Рассчитайте md5 вашего пароля (вы можете использовать эту ссылку http://www.miraclesalad.com/webtools/md5.php для удобства).

Вы обнаружите, что хэш, хранящийся в базе данных в таблице users в столбце pass, будет точно таким же

Это поведение для установки по умолчанию Drupal 6 (поведение могло измениться для Drupal 7). Только если у вас установлен какой-то специальный модуль, поведение в Drupal 6 будет другим.

4 голосов
/ 08 октября 2010

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

2 голосов
/ 08 октября 2010

Существующий модуль user import выглядит так, как будто он будет работать для массового импорта пользователей. Это не отвечает на ваш вопрос «как мне хэшировать пароль», но устранит необходимость в специальном (вероятно, более подверженном ошибкам) ​​сценарии.

...