hash_hmac()

hash_hmac() — Generate a keyed hash value using the HMAC method.

Built-in function of PHP 8.5. The manual lists it as available in PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

Signature

hash_hmac(string $algo, string $data, string $key, bool $binary = false): string

Parameters

ParameterTypeWhat it takes
$algostringName of selected hashing algorithm (e.g. "sha256"). For a list of supported algorithms see hash_hmac_algos(). Note: Non-cryptographic hash functions are not allowed.
$datastringMessage to be hashed.
$keystringShared secret key used for generating the HMAC variant of the message digest.
$binaryboolWhen set to true, outputs raw binary data. false outputs lowercase hexits.

Return value

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Example

A runnable snippet:

echo hash_hmac('sha256', 'The quick brown fox jumped over the lazy dog.', 'secret');

Output:

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

Changelog

VersionChange
8.0.0Now throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned and an E_WARNING message was emitted.
7.2.0Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

See also

hash_hmac_algos(), hash_hmac_file(), hash_equals()

All PHP 8.5 built-in functions

Reference card built from the PHP manual page hash_hmac() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.