hash_update
funkcja
Dostarcza kolejny fragment danych do kontekstu skrótu zainicjowanego przez hash_init(). Zwraca true — kontekst aktualizuje się w miejscu.
hash_update(HashContext &$context, string $data): true
hash_update dodaje dane do otwartego kontekstu HashContext zwróconego przez hash_init(). Można ją wywoływać dowolną liczbę razy, a końcowy skrót uwzględni wszystkie fragmenty w kolejności ich podawania. Po dostarczeniu wszystkich danych wywołaj hash_final().
<?php
declare(strict_types=1);
// Budowanie skrótu z wielu fragmentów:
$ctx = hash_init('sha256');
hash_update($ctx, 'czesc');
hash_update($ctx, ' swiecie');
$wynik = hash_final($ctx);
echo $wynik;
// wynik: 7e36ebef3c79f1be55e19d97f82ecdfed4efc30f6d666472961e34e7030cb7f2
// Identyczny wynik jak hash('sha256', 'czesc swiecie'):
var_dump($wynik === hash('sha256', 'czesc swiecie')); // bool(true)
// Haszowanie odpowiedzi HTTP w locie (np. w middleware):
$ctx = hash_init('sha256');
foreach ($chunksOdpowiedzi as $chunk) {
hash_update($ctx, $chunk);
// wysyłaj chunk do klienta równolegle...
}
$checksumOdpowiedzi = hash_final($ctx);
// Kontekst można kopiować przed finalizacją:
$ctx1 = hash_init('sha256');
hash_update($ctx1, 'wspolna-czesc');
$ctx2 = clone $ctx1; // dwa niezależne konteksty od tego momentu
hash_update($ctx1, '-wariant-a');
hash_update($ctx2, '-wariant-b');
echo hash_final($ctx1); // skrót dla 'wspolna-czesc-wariant-a'
echo hash_final($ctx2); // skrót dla 'wspolna-czesc-wariant-b'