buu
Новичок
Как скопировать hash resource
Проблема в следующем:
нужно по частям хешировать файл, причем вычислять сначала hash первой части, потом первой + второй, потом первой + второй + третьей и т.д. Размер файла может быть большим, так что держать все это дело в памяти нельзя. Такой вариант :
не пройдет, т.к. после hash_final $ctx удаляется и больше проапдейтить его нельзя.
тоже не прокатило, т.к. $ctx1 получилось ссылкой на $ctx.
- не пашет, т.к. $ctx это не объект а ресурс.
- результат 0 (ресурс не сериализируется)
Есть ли вообще какой-то способ скопировать $ctx? или может есть другой способ потокового хеширования?
Проблема в следующем:
нужно по частям хешировать файл, причем вычислять сначала hash первой части, потом первой + второй, потом первой + второй + третьей и т.д. Размер файла может быть большим, так что держать все это дело в памяти нельзя. Такой вариант :
PHP:
$ctx = hash_init($algo);
hash_update($ctx, $data[0]);
$hash[0] = hash_final($ctx);
hash_update($ctx, $data[1]);
$hash[1] = hash_final($ctx);
PHP:
$ctx1 = $ctx;
PHP:
$ctx1 = clone $ctx;
PHP:
$ctx1 = unserialize(serialize($ctx));
Есть ли вообще какой-то способ скопировать $ctx? или может есть другой способ потокового хеширования?