wp_hash_password() WP 2.5
Шифрует переданный текст. Шифр всегда получается уникальный. Используется для шифрования паролей.
Создает хэш из простого текста. Хэш всегда получается разный, т.е. если 2 раза одинаково вызвать функцию, результаты будут отличаться. см. пример 1.
Функция использует класс PasswordHash, который расположен в /wp-includes/class-phpass.php. PasswordHash можно конфигурировать, смотрите пример.
Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуков нет.
Возвращает
Строку, зашифрованный пароль.
Использование
$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
Чтобы пароль создавался с нужными нам параметрами:
global $wp_hasher; $wp_hasher = new PasswordHash(16, FALSE); $hashedPassword = wp_hash_password($password);
#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 hash password WP 5.6.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 ) );
}