|
hash_update
Pump data into an active hashing context
(PHP 5 >= 5.1.2, PECL hash:1.1-1.5)
Parameters
Code Examples / Notes » hash_updatedainichi
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. |