Какая функция возвращает хэш пароля Drupal-6-valid?

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

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

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

Я заглянул в портативный PHP пароль хэширования framework Drupal использует, но я не думаю, что он работает только с методом копирования+вставки.

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

3 ответов


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

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

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

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

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


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


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