Как сравнить пароли в Wordpress ?

voodoo911
На сайте с 11.03.2008
Offline
157
1445

Подскажите, как в WP сравнить пароли? К примеру мне нужно сверить пароль юзера, который он вводит, в обход стандартных функций WP.

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

Вот, к примеру:

wp_hash_password('qwerty');

Получаем:

$P$B31NuyUXnvP9D.9rPVW.yRhZIU3UNO11

$P$BmnGwj9h5nlobKkZWZOo.Z4UlmJejQ.1

$P$BstDnM9vmdkaBT46DwEydNxEXDslpV01

Или может я что не знаю по процессу логина в WP

unixadm
На сайте с 24.09.2010
Offline
110
#1

Соленый md5, он таким и должен быть. Можете подкрутить саму функцию, чтобы не солила - тогда хеши будут одинаковыми.

Host4Biz: NVMe Хостинг в Европе ( https://host4.biz/ru/hosting/shared-hosting ) | Windows/Linux NVMe VPS в Европе ( https://host4.biz/ru/vps ) | Выделенные серверы в Европе, США и Азии ( https://host4.biz/ru/servers/dedicated )
voodoo911
На сайте с 11.03.2008
Offline
157
#2

А как тогда при логине сверяется пасс ?

unixadm
На сайте с 24.09.2010
Offline
110
#3

Соврал, гугль подсказывает, что там пароль хешируется и проверяется хитрее. Вот тема в помощь: http://wordpress.org/support/topic/use-wordpress-database-for-other-script

voodoo911
На сайте с 11.03.2008
Offline
157
#4

Вообщем как всегда - гугл в поощь.

Если кому надо

$password = 'plaintext password';

$hash = 'hash of the password from the database';

require_once( '/path/to/wp-includes/class-phpass.php');

$wp_hasher = new PasswordHash(8, TRUE);

$check = $wp_hasher->CheckPassword($password, $hash);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий