wp_hash_password

Шифрует переданный текст. Шифр всегда получается уникальный. Используется для шифрования паролей.

Создает хэш из простого текста. Хэш всегда получается разный, т.е. если 2 раза одинаково вызвать функцию, результаты будут отличаться. см. пример 1. Пока установлена глобальная переменная $wp_hasher, для создания используется класс PasswordHash, который добавляет “соль” в текст и пропускает его 8 раз через MD5. PasswordHash можно конфигурировать, смотрите пример.

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

wp_hash_password() использует класс PasswordHash, который расположен в /wp-includes/class-phpass.php.

Хуков нет.

Возвращает

Строку, зашифрованный пароль.

Использование

$hash = wp_hash_password( $password );
$password(строка) (обязательный)
Обычный текст (пароль), который нужно зашифровать.
По умолчанию: нет

Примеры

#1. Пример работы функции

echo wp_hash_password( 'my_pass' ); 
// получим: $P$B1tp3GD53ykbIGC4hf84pvbEjSUloq.

// зашифруем ещераз точно также
echo wp_hash_password( 'my_pass' ); 
// получим: $P$Bu3CWn/Y0zTG8IXJ8ee9yiT715tWxG/

#2. Сравним уже зашифрованный пароль с обычным

$wp_hasher = new PasswordHash(8, TRUE);

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

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
	echo "Пароли совпадают";
} else {
	echo "Пароль не верный";
}

#3. Установим глобальную переменную $wp_hasher

Чтобы пароль создавался с нужными нам параметрами:

$wp_hasher = new PasswordHash(16, FALSE);
$hashedPassword = wp_hash_password($password);

Код из


wp-includes/pluggable.php

WP 4.7.2

<?php
function wp_hash_password($password) {
	global $wp_hasher;

	if ( empty($wp_hasher) ) {
		// By default, use the portable hash from phpass
		$wp_hasher = new PasswordHash(8, true);
	}

	return $wp_hasher->HashPassword( trim( $password ) );
}