hash_copy în PHP

Copiază un calcul de amprentă incremental, ca să poți obține un rezultat intermediar și apoi să continui.

Sintaxă
hash_copy(HashContext $context): HashContext

Ce face hash_copy

hash_final închide contextul. Dacă ai nevoie de amprenta datelor de până acum, dar vrei să continui adăugarea, faci o copie cu hash_copy și apelezi hash_final pe copie. Originalul rămâne deschis.

Parametri

Parametru Descriere
$context Contextul copiat.

Ce returnează

Un context nou, independent.

Exemple

Exemplul 1: Amprentă intermediară și finală

<?php
$ctx = hash_init("md5");
hash_update($ctx, "abc");

echo hash_final(hash_copy($ctx)) . " = " . md5("abc") . "\n";

hash_update($ctx, "def");
echo hash_final($ctx) . " = " . md5("abcdef");

Rezultat

900150983cd24fb0d6963f7d28e17f72 = 900150983cd24fb0d6963f7d28e17f72
e80b5017098950fc58aad83c8c14978e = e80b5017098950fc58aad83c8c14978e

Greșeli frecvente

  • Copiezi cu $copie = $ctx. Ambele variabile indică același obiect; închiderea uneia o închide și pe cealaltă. Folosește hash_copy.

Comenzi înrudite

  • hash_init: Pornește un calcul de amprentă incremental: datele se adaugă pe bucăți, iar rezultatul se obține la final.
  • hash_final: Încheie un calcul de amprentă incremental și returnează rezultatul.