(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialize an incremental hashing context
algoName of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos().
flags
       Optional settings for hash generation, currently supports only one option:
       HASH_HMAC.  When specified, the key
       must be specified.
      
key
       When HASH_HMAC is specified for flags,
       a shared secret key to be used with the HMAC hashing method must be supplied in this
       parameter.
      
optionsAn array of options for the various hashing algorithms. Currently, only the "seed" parameter is supported by the MurmurHash variants.
Returns a Hashing Context for use with hash_update(), hash_update_stream(), hash_update_file(), and hash_final().
   Throws a ValueError exception if
   algo is unknown or is a non-cryptographic hash
   function, or if key is empty.
  
| Version | Description | 
|---|---|
| 8.1.0 | The optionsparameter has been added. | 
| 8.0.0 | Now throws an ValueError exception if the algois unknown or is a non-cryptographic hash
        function, or ifkeyis empty. Previously,falsewas returned and anE_WARNINGmessage was
        emitted. | 
| 7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMACwas disabled. | 
| 7.2.0 | Return HashContext instead of resource. | 
Example #1 Incremental hashing example
<?php
$ctx = hash_init('md5');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
echo hash_final($ctx);
?>
The above example will output:
5c6ffbdd40d9556b73a21e63c3e0e904