A simple example on incremental file hashing:
$fp = fopen($file, "r");
$ctx = hash_init('sha256');
while (!feof($fp)) {
$buffer = fgets($fp, 65536);
hash_update($ctx, $buffer);
}
$hash = hash_final($ctx, true);
fclose($fp);
While incremental hashing is quite slow, it's the easiest way to hash
- parts of large files: I.e., a 700MB avi video uses first x bytes to store metadata, so in order to hash the avi's data only, you have to fseek to data start and use incremental hashing
- streaming data if php just proxies the data
- whenever it's inadequate or impossible to store the data being hashed into memory (i.e. because of their size) or on disc.
hash_update
(PHP 5 >= 5.1.2, PECL hash >= 1.1)
hash_update — Veriyi etkin bir özetleme bağlamına dahil eder
Açıklama
bool hash_update
( resource $bağlam
, string $veri
)
Veriyi etkin bir özetleme bağlamına dahil eder.
Değiştirgeler
- bağlam
-
hash_init() tarafından döndürülmüş özetleme bağlamı.
- veri
-
İleti özetine dahil edilecek ileti.
Dönen Değerler
TRUE döndürür.
Ayrıca Bakınız
- hash_init() - Ardışık özetleme bağlamını ilklendirir
- hash_update_file() - Veriyi bir dosyadan etkin bir özetleme bağlamına dahil eder
- hash_update_stream() - Veriyi açık bir akımdan etkin bir özetleme bağlamına dahil eder
- hash_final() - Bir ardışık özetleme işlemini bitirip üretilen özeti döndürür
hash_update
Dainichi
25-Jul-2006 01:19
25-Jul-2006 01:19
