Алгоритм хеширования для динамического увеличения / потоковой передачи данных?

Есть ли какие-нибудь алгоритмы, с помощью которых вы можете продолжить хеширование из известного хеш-дайджеста? Например, клиент загружает фрагмент файла на ServerA, я могу получить сумму md5 загруженного содержимого, затем клиент загружает остальную часть фрагмента файла на ServerB, могу ли я передать состояние md5 внутренности на ServerB и завершение хеширования?

Был классный хак с черной магией на основе md5, который я нашел несколько лет назад на comp.lang.python, но он использует ctypes для конкретной версии md5.so или _md5.dll , так что это не совсем переносимый код для разных версий интерпретатора Python или других языков программирования. Кроме, модуль md5 устарел в стандартной библиотеке Python с версии 2.5, поэтому мне нужно найти более общее решение.

Более того, может ли состояние хеширования быть сохранено в шестнадцатеричном формате переваривать сам? (Так что я могу продолжить хеширование потока данных с существующим хеш-дайджестом, а не с грязным внутренним взломом.)

7
задан Pika the Wizard of the Whales 5 April 2019 в 05:09
поделиться