hash_update()
(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)
向活跃的哈希运算上下文中填充数据
说明
hash_update(HashContext$context,string $data): bool
参数
- $context
由hash_init()函数返回的哈希运算上下文。
- $data
要向哈希摘要中追加的数据。
返回值
返回TRUE
。
更新日志
版本 | 说明 |
---|---|
7.2.0 | 接收参数从资源类型修改为HashContext对象类型。 |
参见
hash_init()
初始化增量哈希运算上下文hash_update_file()
从文件向活跃的哈希运算上下文中填充数据hash_update_stream()
从打开的流向活跃的哈希运算上下文中填充数据hash_final()
结束增量哈希,并且返回摘要结果
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.