wp_hash()
Хеширует переданную строку и возвращает полученный хэш-код.
Хэш — это строка фиксированной длины созданная из каких-либо данных. Такая строка создается таким образом, чтобы вероятность появления различных данных с одинаковым хешем стремилась к нулю, а восстановить данные по их хешу было невозможно.
Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуков нет.
Возвращает
Строку. Строку, хэш переданных данных.
Использование
wp_hash( $data, $scheme );
- $data(строка) (обязательный)
- Текст из которого нужно сделать хэш.
- $scheme(строка)
Принцип хэширования. Этот параметр передается в функцию wp_salt(), результат которой затем добавляется в хэш. Может быть:
- auth
- secure_auth
- logged_in
- nonce
По умолчанию: 'auth'
Примеры
#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 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 );
}