wp_hash()WP 2.0.3

Хеширует переданную строку и возвращает полученный хэш-код.

Хэш — это строка фиксированной длины созданная из каких-либо данных. Такая строка создается таким образом, чтобы вероятность появления различных данных с одинаковым хешем стремилась к нулю, а восстановить данные по их хешу было невозможно.

Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Работает на основе: hash_hmac()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.08 сек (скорость света) | PHP 7.2.5, WP 4.9.8

Хуков нет.

Возвращает

Строку. Строку, хэш переданных данных.

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

wp_hash( $data, $scheme );
$data(строка) (обязательный)
Текст из которого нужно сделать хэш.
$scheme(строка)

Принцип хэширования. Этот параметр передается в функцию wp_salt(), результат которой затем добавляется в хэш. Может быть:

  • auth
  • secure_auth
  • logged_in
  • nonce

По умолчанию: 'auth'

Примеры

3

#1 Демонстрация

echo wp_hash( 'wp-kama' ); //> af3393632a8bb769275e1e992cac39c4
// второй раз
echo wp_hash( 'wp-kama' ); //> af3393632a8bb769275e1e992cac39c4

echo wp_hash( 'WP-KAMA' ); //> b919a9bc1a3f37892bd3dc150e67785a

Список изменений

С версии 2.0.3 Введена.
С версии 6.8.0 The $algo parameter was added.

Код wp_hash() WP 7.0.1

function wp_hash( $data, $scheme = 'auth', $algo = 'md5' ) {
	$salt = wp_salt( $scheme );

	// Ensure the algorithm is supported by the hash_hmac function.
	if ( ! in_array( $algo, hash_hmac_algos(), true ) ) {
		throw new InvalidArgumentException(
			sprintf(
				/* translators: 1: Name of a cryptographic hash algorithm. 2: List of supported algorithms. */
				__( 'Unsupported hashing algorithm: %1$s. Supported algorithms are: %2$s' ),
				$algo,
				implode( ', ', hash_hmac_algos() )
			)
		);
	}

	return hash_hmac( $algo, $data, $salt );
}