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
| Parameter | Type | What it takes |
|---|---|---|
| $algo | string | Name 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. |
| $data | string | Message to be hashed. |
| $key | string | Shared secret key used for generating the HMAC variant of the message digest. |
| $binary | bool | When 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
| Version | Change |
|---|---|
| 8.0.0 | Now 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.0 | Usage 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.