相同文件夾zip後md5值不同

   衆所周知,一個文件的md5值是和文件內容有關,值唯一,出現相同md5值的概率比較小。相同文件zip出來的md5值一般相同,不同文件zip出來的md5值一般不會相同。但是你見過相同的文件zip之後,md5值還不同麼?!

   最近在交付的時候,遇到了。相同文件不同時刻zip出來的zip包,md5值竟然不同!所以一定是zip出來的包內容變了。追溯下我的工作流程。 我習慣性的用zip -r file.zip file/ 的形式來zip出來一個文件,然後直接md5sum file.zip 來查看對應的zip包的md5值。

   問題出在了zip過程。具體自己bing一下zip後文件內容組成。這裏只說結論和解決方法哈
   造成md5值不同的變量是zip文件中的 Access Time。它存儲在zip文件的 local file header 的額外字段 (extra fields) 的擴展時間戳字段 (Extended Timestamp Extra Field) 中。

   那麼如何zip出一個和時間無關的zip包呢?

  如果你想每次 zip 打包出來的文件內容都一樣,使用 -X 或 --no-extra 參數可以避免將 extra fields 打包進去就可以避免 Access Time對md5值的影響了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章