03.07 文件沒移動,md5值卻變了,可能是什麼原因?

妞爸_Shanghai


MD5信息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。



他被用於對一個文件的計算摘要信息,來確保你得到的文件是原始的沒有被修改過得文件,通常它是一長串字符!對於不同的文件內容(不是文件名)這個長串字符是不同的!這樣就可以對比給出的結果和你計算出的結果是否一致,一致就是原來的文件,不一致就說明被人改動過,MD5就像是人類的指紋一樣!指紋不同當然就不是原來的人!


互聯網上下載的文件普遍都會提供MD5值,下載以後通過MD5計算工具來和給出的字符對比。如果不一致那麼就代表不是作者原來的文件!移動並不會改變MD5的計算結果!


風來了156


可能原因有三

1 位翻轉。由於宇宙射線,環境磁暴,電磁干擾等原因,硬盤上的某個位發生變化。這個位又恰好處於文件存儲位置。結果就導致文件損壞。這種情況導致的文件損壞是非常常見的。幾乎每週都會遇到一次。但是由於大多數情況下,位翻轉都不在關鍵文件位置上,所以一般人感覺不到影響。而且大多數受到位翻轉影響的文件也能正常打開。

2 磁道衰減。由於磁盤屬於磁性原件,存在自然衰減的情況。並且由於製造工藝不可能保證所有磁道衰減一直。就會存在衰減過快的情況。結果就導致文件部分發生變化。這個也很難遇到。畢竟現在工藝比以前好的多,即使衰減速度不一致,也非常慢。可能你放置幾年才會遇到。對於SSD也存在由於柵極工藝導致電平衰減的情況。

3 壞道。硬盤壞道太常見了。即使你沒發生碰撞,沒寫過這個位置。但是就是不知道咋的就壞道了。畢竟存在機械動件。而對於SSD。也不是高枕無憂,壞位有時候就是在不經意間發生的。

2和3的情況其實可以算一種。

4 病毒。這個就沒啥好說的了,病毒改寫了文件把自己藏在裡面以便繼續傳播。

相對來說,第四種情況是最好解決也最容易遇到的。只要你使用習慣好,有殺毒軟件。基本可以避免。即使遇到了,一個好點的殺毒軟件也能將病毒剝離出來並還原你得文件。

第二三種情況,不常遇到,也好處理。不要用太次的磁盤。機械硬盤避免碰撞和意外掉電,不要用瓦疊技術的磁盤。SSD用大品牌的。基本可以避免。另外多做備份,真是出現損壞一般文件都打不開用不了了,還原備份即可。而且大部分操作系統都能處理這種故障。

第一種情況,那真是。一般發生這種情況,文件大部分還能正常打開。但是就是文件內部發生了改變。對於常人來說觀察不到,對於操作系統來說檢測不到。一般的文件系統都不能發現這種故障,更別說修復了。對於操作系統可能就是變得有些卡,但又不會崩潰。對於文本,就是變了一個字符。對於照片,可能就變了某個像素的顏色。最嚴重也就圖片鏈表丟失只顯示一半啥的。音頻出現一個刺音。視頻丟了一幀。

好在這種問題對於大多數人來說無所謂。系統文件損壞重裝系統就是了,照片壞了不要,音頻視頻湊合著也能聽能看。

但要解決這個問題。那就超麻煩了。現在唯一能有效解決這個問題的成熟方案是使用ZFS文件系統。這個文件系統只能在BSD操作系統下完美工作。Ubuntu想要引入喊了快十年了,也只是實驗階段。蘋果喊了幾年後放棄了。所以到目前這個東西也只在大型商業公司和少部分玩家手中使用。其次,linux抄其技術搞了Btrfs個,Windows也抄其技術搞了Refs個。但是這兩個都不成熟,存在各種或大或小的BUG。估計要起完美運行還要五到十年時間。到那時候ZFS就25歲了。其升級版OpenZFS也該成熟了。


leang789


這就是 btrfs 文件系統裡面提到的,他可以檢測出靜默文件損壞的重要性。

簡單的說,你存儲的文件的硬盤存儲區,某(多)個位在0和1之間發生了翻轉。造成這個原因可能是硬盤自身缺陷(如老化,數據線接觸不良誤碼高),也可能是諸如WinHEX這樣的16進制編輯器,繞開文件系統,直接修改硬盤扇區,改變了這個文件的存儲扇區。又或者是系統寫硬盤扇區時崩潰死機 導致文件不完整。

這樣的事情總會發生,只要硬盤在讀盤時沒有報錯,那麼用戶是不會發現讀到的文件與當初保存的文件已經不同了。目前來說,只有帶有check sum的文件系統才能揪出這樣的問題,例如 btrfs 等。而NTFS是不行的。


zhangjint5


綜合可能是移動硬盤供電不足、USB連接線、USB接口氧化、內存條出現問題等也會出現這種問題。


MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc 發明,由 MD2/MD3/MD4 發展而來的。MD5的實際應用是對一段Message(字節串)產生fingerprint(指紋),可以防止被“篡改”。

舉個例子,從某網站提供下載的MD5校驗值軟件WinMD5.zip,其MD5值是1e07ab3591d25583eff5129293dc98d2,但你下載該軟件後計算MD5發現其值卻是81395f50b94bb4891a4ce4ffb6ccf64b,那說明該ZIP已經被他人修改過,那還用不用該軟件那你可自己琢磨著看啦。
MD5廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它算法)的方式保存的,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,來驗證該用戶的合法性。

所以從原理上,文件沒有改動,MD5肯定是不會變的。但實際生活中,copy到移動硬盤、下載大文件,偶爾會出現變動。 綜合可能是供電不足、USB連接線、USB接口氧化、內存條出現問題等也會出現這種問題。


分享到:


相關文章: