wp_hash_password() WP 2.5.0

Шифрує переданий текст. Шифр завжди виходить унікальним. Використовується для шифрування паролів.

Створює хеш із простого тексту. Хеш завжди виходить різний, тобто. якщо 2 рази однаково викликати функцію, результати відрізнятимуться. див. Приклад 1.

Функція використовує клас PasswordHash , який розташований у /wp-includes/class-phpass.php . PasswordHash можна конфігурувати, дивіться приклад.

Це init .

Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.

Основа для:
wp_set_password()
1 раз – 0.003847 сек
(дуже повільно) | 50000 разів – 106.27 сек
(гальмо) |
PHP 7.2.5, WP 4.9.8

Хуків немає.

Повертає

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

Використання

$ hash = wp_hash_password ($ password);
$password
(рядок) (обов’язковий)
Звичайний текст (пароль), який потрібно зашифрувати.

Приклади

0

#1 Приклад роботи функції

echo wp_hash_password( 'my_pass' ); //> $P$B1tp3GD53ykbIGC4hf84pvbEjSUloq.

// зашифруємо ще раз точно так само
echo wp_hash_password( 'my_pass' ); //> $P$Bu3CWn/Y0zTG8IXJ8ee9yiT715tWxG/
0

#2 Встановимо глобальну змінну $wp_hasher

Щоб пароль створювався із потрібними нам параметрами:

global $wp_hasher;
$wp_hasher = New PasswordHash(16, FALSE);
$hashedPassword = wp_hash_password($password);
0

#3 Порівняємо вже зашифрований пароль зі звичайним

$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 "Пароль не вірний";
}

нотатки

  • Global. PasswordHash. $wp_hasher PHPass object

список змін

З версії 2.5.0Введено.

Код wp_hash_password() WP 6.0.2

function wp_hash_password( $password ) {
	global $wp_hasher;

	if ( empty( $wp_hasher ) ) {
		require_once ABSPATH. WPINC. '/class-phpass.php';
		// By default, use the portable hash from phpass.
		$wp_hasher = New PasswordHash(8, true);
	}

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *