Відповіді:
Хешер паролів WordPress реалізує рамку хешування портативного PHP пароля , яка використовується в таких системах управління вмістом, як WordPress та Drupal.
Вони раніше використовували MD5 у старих версіях, але, на жаль, не більше. Ви можете генерувати хеші за допомогою цієї схеми шифрування на веб-сайті http://scriptserver.mainframe8.com/wordpress_password_hasher.php .
password_hash
функцію. якщо у вас є лише> PHP 5.3.7, використовуйте тут бібліотеку сумісності github.com/ircmaxell/password_compat
$hash_type$salt$password
Якщо хеш не використовує сіль, $
знаку для цього немає. Фактичний хеш у вашому випадку - після 2-го$
Причина цього полягає в тому, що ви можете мати багато типів хешів з різними солями і подає цей рядок у функцію, яка знає, як зіставити його з деяким іншим значенням.
MD5 працював на мене, змінюючи базу даних вручну. Див.: Скидання пароля
Для ручного скидання пароля в БД Wordpress достатньо простого хеша MD5. (див. причину нижче)
Щоб запобігти порушенню зворотної сумісності, паролі, що зберігаються в базі даних MD5, зберігаються в базі даних. Коли користувач входить із таким паролем, WordPress виявляє, що MD5 був використаний, повторно переробити пароль за допомогою більш безпечного методу та зберігає новий хеш у базі даних.
Джерело: http://eamann.com/tech/wordpress-password-hashing/
Оновлення: ця відповідь була опублікована у 2014 році. Я не знаю, чи працює вона все ще в останній версії WP, оскільки я більше не працюю з WP.
У мене була така ж проблема, щоб дізнатися, який тип хеша використовує 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.
Найкращий спосіб зробити це - використовувати клас WordPress для аутентифікації користувачів. Ось мої рішення:
1. Включіть наступний файл WordPress PHP:
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']
як хешований пароль, який потрібно отримати з бази даних.
Запустіть phpMyAdmin та отримайте доступ до wp_users зі свого примірника wordpress. Відредагуйте запис та виберіть функцію user_pass, щоб відповідати MD5. Напишіть рядок, який буде вашим новим паролем, у VALUE. Клацніть, GO. Перейдіть на веб-сайт Wordpress і введіть новий пароль. Повернувшись до phpMyAdmin, ви побачите, що WP змінив HASH на щось на зразок $ P $ B ... насолоджуйтесь!
Wordpress використовує хешування MD5 . Створює хеш простого текстового пароля. Якщо не встановлено глобальний $ wp_hasher, реалізація за замовчуванням використовує PasswordHash, який додає сіль до пароля і мішає його з 8 пропусками MD5. MD5 використовується за замовчуванням, оскільки він підтримується на всіх платформах. Ви можете налаштувати PasswordHash для використання Blowfish або розширеного DES (якщо є) замість MD5 за допомогою аргументу або властивості конструктора $ portable_hashes.
include_once ('../../../ wp-config.php');
глобальний $ wpdb;
$ password = wp_hash_password ("ваш пароль");
За замовчуванням wordpress використовує MD5. Ви можете модернізувати його до морозива або розширеного DES.
http://frameworkgeek.com/support/what-hash-does-wordpress-use/