Как определить, какие части двоичного файла изменяются

Как определить, какие части двоичного файла изменяются

Есть ли инструмент, который я могу увидеть, какие части файла изменяются? Я видел инструменты, которые показывают, к каким сегментам моего жесткого диска осуществляется доступ, но я хочу что-то похожее для одного файла, если такое существует.

Я шифрую файл и хочу посмотреть, изменится ли эта часть снова, как только часть будет записана на диск. Например, после того, как первый МБ файла будет зашифрован и сохранен на диск, а программа продолжит работу, обновится ли что-нибудь в этом первом МБ после завершения шифрования.

В качестве подробного контекста, у меня есть процесс, в котором я использую gpg4win для шифрования очень большого файла (36 ГБ), а затем мне нужно отправить его по FTP на удаленный сервер. Оба этапа этого процесса занимают много часов, но FTP занимает немного больше времени. Если шифрование просто продолжает расширять файл, но начало остается неизменным, то я могу начать процесс FTP, как только файл немного войдет. Однако если заголовок моего зашифрованного файла обновится в конце, мне придется ждать, пока эти шаги не будут завершены, прежде чем я начну загрузку.

решение1

Обычно это какой-то вариантrsync как алгоритм:

* split a file into blocks of x bytes
* build a hash over these x bytes
* compare the hash for each block between both files
* transfer the changed blocks

Очевидно, это работает только в том случае, если файл не изменяется.всеблоки, когда это написано. Таким образом, этоцитируемый абзацследует иметь в виду следующее:

Шифрование диска часто использует специальные режимы, специально разработанные для приложения. Настраиваемые режимы шифрования с узкими блоками (LRW, XEX и XTS) и режимы шифрования с широкими блоками (CMC и EME) предназначены для надежного шифрования секторов диска. (См. теорию шифрования диска)

OpenGPG — это смешанная криптосистема (она смешивает асимметричные и симметричные шифры для достижения своей цели), сейчас я ничего не нахожу об используемых шифрах И их применении для дельт на уровне блоков. Вы можете выбрать другое крипторешение (например, openssl), основываясь на этих наблюдениях:http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html

Там было сказано:

Оба инструмента позволяют вычислить двоичную разницу и впоследствии объединить части.

Связанный:Инкрементное (дельта) резервное копирование зашифрованных данных

Связанный контент