(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialize an incremental hashing context
$algo,$flags = 0,$key = "",$options = []
algo
       Name of selected hashing algorithm (e.g. "sha256").
       For a list of supported algorithms see hash_algos().
       
Зауваження:
Non-cryptographic hash functions are not allowed if the
HASH_HMACflag is specified.
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.
      
options
       An 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().
algo is unknown or is a non-cryptographic hash
     function, or if key is empty.
    
   options will now emit an
     E_DEPRECATED error because they can be interpreted
     incorrectly.
     This will become a ValueError in the
     future.
    
   
| Версія | Опис | 
|---|---|
| 8.4.0 | Passing options of a wrong type is now deprecated. | 
| 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. | 
Приклад #1 Incremental hashing example
<?php
$hash = hash('sha256', 'The quick brown fox jumped over the lazy dog.');
$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>Поданий вище приклад виведе:
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483 bool(true)
