sodium_crypto_generichash_init

Initialize a hash for streaming

&reftitle.description; `string` `sodium_crypto_generichash_init` #[\SensitiveParameter]`string` `key`"" `int` `length` `SODIUM_CRYPTO_GENERICHASH_BYTES`

The initialization method for the streaming generichash API.

&reftitle.parameters;

`key`

- The generichash key.

`length`

- The expected output length of the hash function.

&reftitle.returnvalues;

Returns a hash state, serialized as a raw binary string.

&reftitle.examples;

### `sodium_crypto_generichash_init` example

    <?php
    $messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
    $state = sodium_crypto_generichash_init('', 32);
    foreach ($messages as $message) {
        sodium_crypto_generichash_update($state, $message);
    }
    $final = sodium_crypto_generichash_final($state, 32);
    var_dump(sodium_bin2hex($final));
    $allAtOnce = sodium_crypto_generichash(implode('', $messages));
    var_dump(sodium_bin2hex($allAtOnce));
    ?>

&example.outputs.similar;

    string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
    string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"