
我想使用 md5deep 來檢查一些複製的目錄是否正確複製。但似乎 md5deep 在匹配時不使用儲存在生成的 .md5 檔案中的檔案名稱!
這實際上意味著,如果我複製一個大目錄結構(具有重複的檔案)並且出現問題,因此目錄包含檔案(具有正確的檔案名稱和錯誤的內容),那麼 md5deep 不會發現這是不匹配的!
例子:
假設我們有以下文件結構:
photos\public_photo1.jpg
photos\public_photo2.jpg
photos\private_photo1.jpg
photos\photos_my_mother_can_see\public_photo1.jpg
photos\photos_my_mother_can_see\public_photo2.jpg
正如您所看到的,其中兩張照片是重複的文件!
現在想像一下我的複製實用程式失敗了,因此 的內容public_photo1.jpg
實際上是 的內容private_photo1.jpg
。目錄結構仍然相同!
在我的來源磁碟機上,我執行了以下操作來產生 MD5 檔案:
md5deep64 -rel c:\photos\*.* > result.md5
(我使用相對路徑!)
然後我將文件與目標資料夾進行匹配:
md5deep64 -X result.md5 -r c:\photosdest
沒有發現任何變化!
如果我甚至進行匹配(md5deep64 -wm result.md5 -rc:\photosdest),我甚至可以看到它如何不使用檔案名稱進行比較:
c:\photosdest\photos_my_mother_can_see\public_photo1.jpg matched c:\photos\private_photo1.jpg
c:\photosdest\public_photo1.jpg matched c:\photos\photos_my_mother_can_see\public_photo1.jpg
c:\photosdest\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\photos_my_mother_can_see\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\private_photo1.jpg matched c:\photos\private_photo1.jpg
:-(
這是一個功能還是一個錯誤?
有什麼方法可以強制 md5deep 比較具有相同檔案名稱和位置的檔案的 MD5? ……或者我應該開始尋找另一個 md5 生成器/比較器?
答案1
這是 md5deep 的特性,而不是一個 bug。聽起來你想使用配套程式 hashdeep。該程式附帶 md5deep。
md5deep 的目的是尋找文件,無論文件名稱為何。例如,在搜尋 Rootkit EVILEVIL.EXE 時,使用者可能希望找到與 EVILEVIL 具有相同雜湊值的任何文件,即使該文件已重新命名為 fuzzykitten.exe。
另一方面,hashdeep 程式可以進行審核,檢查檔案大小、位置、和匹配時的哈希值。