Какой тип хеша использует WordPress? - PullRequest
127 голосов
/ 26 июня 2009

Какой тип хеша использует WordPress?
Вот пример хеша WordPress:

$ P $ Bp.ZDNMM98mGNxCtHSkc1DqdRPXeoR.

Ответы [ 11 ]

125 голосов
/ 26 августа 2011

В хеше паролей WordPress реализована Портативная среда хэширования паролей PHP , которая используется в таких системах управления контентом, как WordPress и Drupal.

Раньше они использовали MD5 в старых версиях, но, к сожалению для меня, не более. Вы можете генерировать хэши, используя эту схему шифрования на http://scriptserver.mainframe8.com/wordpress_password_hasher.php.

19 голосов
/ 26 июня 2009
$hash_type$salt$password

Если в хэше не используется соль, для этого нет знака $. Фактический хеш в вашем случае после 2-го $

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

14 голосов
/ 26 июня 2009

MD5 помог мне изменить базу данных вручную. См .: Сброс пароля

10 голосов
/ 21 мая 2014

http://eamann.com/tech/wordpress-password-hashing/

Чтобы предотвратить нарушение обратной совместимости, пароли с хэшированием MD5, хранящиеся в базе данных, все еще действительны. Когда пользователь входит в систему с таким паролем, WordPress обнаруживает, что использовался MD5, перефразирует пароль более безопасным способом и сохраняет новый хэш в базе данных.

Это означает, что для ручного сброса пароля в Wordpress DB достаточно простого хеша MD5.

8 голосов
/ 26 июня 2009

Это зависит как минимум от используемой версии PHP. wp-includes/class-phpass.php содержит все ответы.

7 голосов
/ 14 августа 2017

Лучший способ сделать это - использовать класс WordPress для аутентификации пользователей. Вот мои решения:

1. Включите следующий PHP-файл WordPress:

include_once(dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . "wp-includes" . DIRECTORY_SEPARATOR . "class-phpass.php");

2. Создать объект класса PasswordHash:

$wp_hasher = new PasswordHash(8, true);

3. вызовите CheckPassword функцию для аутентификации пользователя:

$check = $wp_hasher->CheckPassword($password, $row['user_pass']);

4. проверка $check переменная:

if($check) {
   echo "password is correct";
} else {
   echo "password is incorrect";
}

Обратите внимание: $password - это хешированный пароль в виде обычного текста, тогда как $row['user_pass'] - это хешированный пароль, который вам нужно получить из базы данных.

6 голосов
/ 16 мая 2017

У меня возникла такая же проблема с определением того, какой хэш используется в Wordpress.

Это пароль хэша wp .

Пример

Сравните уже хешированный пароль с его простой текстовой строкой:

<?php
$wp_hasher = new PasswordHash(8, TRUE);

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
    echo "YES, Matched";
} else {
    echo "No, Wrong Password";
}
?>

Смотрите эти ссылки: https://codex.wordpress.org/Function_Reference/wp_hash_password

https://developer.wordpress.org/reference/functions/wp_hash_password

Он использует PasswordHash, который добавляет соль к паролю и хэширует его с 8 проходами MD5.

6 голосов
/ 02 декабря 2013

Запустите phpMyAdmin и получите доступ к wp_users из вашего экземпляра WordPress. Отредактируйте запись и выберите функцию user_pass для соответствия MD5. Напишите строку, которая будет вашим новым паролем, в VALUE. Нажмите, GO. Перейдите на ваш сайт WordPress и введите новый пароль. Возвращаясь к phpMyAdmin, вы увидите, что WP изменил HASH на что-то вроде $ P $ B ... наслаждайтесь!

2 голосов
/ 16 июня 2017

include_once ( '../../../ сор-config.php');

global $ wpdb;

$ password = wp_hash_password ("ваш пароль");

2 голосов
/ 13 апреля 2017

Wordpress использует MD5 Хеширование пароля. Создает хэш простого текстового пароля. Если не установлен глобальный $ wp_hasher, реализация по умолчанию использует PasswordHash, который добавляет соль к паролю и хэширует его с 8 проходами MD5. MD5 используется по умолчанию, потому что он поддерживается на всех платформах. Вы можете настроить PasswordHash на использование Blowfish или расширенного DES (если доступно) вместо MD5 с аргументом или свойством конструктора $ portable_hashes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...