# wp_password_needs_rehash()

URL: https://chugunov.pro/api-wordpress/functions/wp_password_needs_rehash/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 6.8.0.

## Сигнатура

```php
wp_password_needs_rehash( string $hash, string|int $user_id = '' ): bool
```

## Описание

Пароли хешируются с помощью bcrypt со стоимостью по умолчанию. Пароль, хешированный в предыдущей версии WordPress, может по-прежнему быть хеширован с помощью phpass, и его потребуется хешировать заново. Если стоимость или алгоритм по умолчанию изменяются в PHP или WordPress, то пароль, хешированный в предыдущей версии, потребуется хешировать заново.
Обратите внимание, что, как и wp_check_password() , эта функция может использоваться для проверки значения, не являющегося паролем пользователя. Плагин может использовать её для проверки пароля другого типа, и с паролем не всегда может быть связан ID пользователя.

## Параметры

- `$hash` `string` — обязательный. Хеш пароля для проверки.
- `$user_id` `string|int` — необязательный, по умолчанию `''`. Идентификатор пользователя, связанного с паролем.

## Возвращаемое значение

`bool`

## Исходный код

Файл: `wp-includes/pluggable.php:2907`

```php
function wp_password_needs_rehash( $hash, $user_id = '' ) {
	global $wp_hasher;

	if ( ! empty( $wp_hasher ) ) {
		return false;
	}

	/** This filter is documented in wp-includes/pluggable.php */
	$algorithm = apply_filters( 'wp_hash_password_algorithm', PASSWORD_BCRYPT );

	/** This filter is documented in wp-includes/pluggable.php */
	$options = apply_filters( 'wp_hash_password_options', array(), $algorithm );

	$prefixed = str_starts_with( $hash, '$wp' );

	if ( ( PASSWORD_BCRYPT === $algorithm ) && ! $prefixed ) {
		// If bcrypt is in use and the hash is not prefixed then it needs to be rehashed.
		$needs_rehash = true;
	} else {
		// Otherwise check the hash minus its prefix if necessary.
		$hash_to_check = $prefixed ? substr( $hash, 3 ) : $hash;
		$needs_rehash  = password_needs_rehash( $hash_to_check, $algorithm, $options );
	}

	/**
	 * Filters whether the password hash needs to be rehashed.
	 *
	 * @since 6.8.0
	 *
	 * @param bool       $needs_rehash Whether the password hash needs to be rehashed.
	 * @param string     $hash         The password hash.
	 * @param string|int $user_id      Optional. ID of a user associated with the password.
	 */
	return apply_filters( 'password_needs_rehash', $needs_rehash, $hash, $user_id );
}
```

## История изменений

- 6.8.0 — Introduced.

## Связанные

Использует: [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`wp_authenticate_email_password`](https://chugunov.pro/api-wordpress/functions/wp_authenticate_email_password/), [`wp_authenticate_username_password`](https://chugunov.pro/api-wordpress/functions/wp_authenticate_username_password/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_password_needs_rehash/
