PHP Conference Japan 2024

hash_update

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update将数据添加到活动哈希上下文中

描述

hash_update(HashContext $context, string $data): true

参数

context

hash_init() 返回的哈希上下文。

data

要包含在哈希摘要中的消息。

返回值

始终返回 true

变更日志

版本 描述
8.4.0 现在返回类型为 true,而不是 bool
7.2.0 接受 HashContext 而不是资源。

参见

添加注释

用户贡献的注释 1 个注释

Dainichi
18 年前
关于增量文件哈希的简单示例

$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);

虽然增量哈希相当慢,但它是哈希最简单的方法
- 大文件的各个部分:例如,一个 700MB 的 avi 视频使用前 x 个字节存储元数据,因此为了仅哈希 avi 的数据,您必须 fseek 到数据开始并使用增量哈希
- 如果 php 只是代理数据,则流式传输数据
- 每当无法或不可能将要哈希的数据存储在内存中(例如,由于其大小)或磁盘上时。
To Top