如何判斷二進位檔案的哪些部分正在更改

如何判斷二進位檔案的哪些部分正在更改

有沒有一種工具可以讓我查看文件的哪些部分正在修改?我見過一些工具可以顯示我的硬碟的哪些部分正在被訪問,但我想要單個文件的類似內容(如果存在類似的內容)。

我正在加密一個文件,我想看看一旦將某個部分寫入磁碟,該部分是否會再次更改。例如,一旦檔案的第一個 MB 被加密並儲存到磁碟並且程式繼續運行,加密完成後第一個 MB 中的任何內容都會更新。

作為一些詳細的上下文,我有一個過程,我使用 gpg4win 加密一個非常大的檔案(36GB),然後我必須將其透過 FTP 傳輸到遠端伺服器。此過程的兩個步驟都需要幾個小時,但 FTP 需要更長的時間。如果加密只是不斷擴展文件,但開頭保持不變,那麼只要文件稍微進入,我就可以啟動 FTP 進程。開始上傳。

答案1

通常這是 a 的某種變體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

那是說:

都是計算二進制差異並稍後將各個部分合併在一起的工具。

有關的:加密資料的增量(delta)備份

相關內容