Рейтинг:1

Как определить, какой хэш пароля используется?

флаг us

Мы перенесли веб-сайт с ванильного PHP на Drupal, и я также перенес всех пользователей.

Старый сайт использовал пароль_хэш() функция шифрования пароля.

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

у меня есть этот код

$query = \Drupal::entityQuery('пользователь');

$uids = $запрос->выполнить();

foreach ($uids как $uid) {
    $user = Пользователь::load($uid);

    // Проверяем, что делать здесь...
}
Рейтинг:2
флаг us

Учитывая код, используемый PhpassHashedPassword::needsRehash(), метод, реализованный классом, используемым для службы хеширования паролей по умолчанию, пароль сохраняется с использованием схемы хеширования Drupal, когда:

Другие схемы хэширования, распознаваемые Drupal, следующие.

  • Когда первые два символа решетки U и $, хэш пароля был обновлен user_update_7000() из хеша MD5, используемого в Drupal 6
  • Когда первые три символа $, ЧАС, и $ (или же $, п, и $) хеш сгенерирован phpass через MD5

В качестве примечания: хэш пароля регенерируется, когда пользователь входит в систему, и это единственный момент, когда у Drupal есть пароль. Чтобы проверить, для каких пользователей сохраненный хэш паролей не использует хэш-схему Drupal по умолчанию, быстрее проверить, какие пользователи не вошли в систему после того, как сайт был перенесен на Drupal.

флаг us
спасибо за Ваш ответ. Основываясь на вашем ответе, мой следующий вопрос: как мне это сделать в части кода? Я добавил некоторые детали в свой вопрос выше.
флаг us
неважно, я только что понял, что вы имели в виду, пароль drupal начинается с `$S$`, я должен проверить это, спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.