hash_hmac_file

Generate a keyed hash value using the HMAC method and the contents of a given file

&reftitle.description; ``string``false```hash_hmac_file` `string` `algo` `string` `filename` `string` `key` `bool` `binary`&false;
&reftitle.parameters;

`algo`

- Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See `hash_hmac_algos` for a list of supported algorithms.

`filename`

- URL describing location of file to be hashed; Supports fopen wrappers.

`key`

- Shared secret key used for generating the HMAC variant of the message digest.

`binary`

- When set to &true;, outputs raw binary data. &false; outputs lowercase hexits.

&reftitle.returnvalues;

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. Returns &false; if the file `filename` cannot be read.

&reftitle.errors;

Throws a `ValueError` exception if `algo` is unknown or is a non-cryptographic hash function.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | Now throws a `ValueError` exception if `algo` is unknown or is a non-cryptographic hash function; previously, &false; was returned instead.
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

&reftitle.examples;

### `hash_hmac_file` example

    <?php
    /* Create a file to calculate hash of */
    file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

    echo hash_hmac_file('sha256', 'example.txt', 'secret');
    ?>

&example.outputs;

    9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

&reftitle.seealso;

- `hash_hmac_algos`
- `hash_hmac`
- `hash_file`