您當前的位置:首頁 > 體育

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?

作者:由 知乎使用者 發表于 體育時間:2013-12-09

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?ReVanTis2013-12-10 01:09:18

不管是校驗演算法,還是糾錯演算法,本質上或者說思路上都是利用冗餘資訊對檔案原本的樣子進行推算。

根據用途的不同,校驗演算法的目的是利用更小的冗餘資訊進行錯誤是否存在的驗證,而糾錯演算法是在保證一定冗餘資訊量的前提下,對已經發生錯誤的檔案進行修復。

CRC可以保證檢測出100%的奇數個錯誤和小於其階數個的突發錯誤。

這一演算法僅僅是用於檢測錯誤,而不是糾正錯誤,單純憑藉這一資訊很難修復出錯。

對rar檔案進行成功修復往往是建立在配置了一定比例的冗餘資料的基礎上的。

而且當錯誤足夠多時,往往這些冗餘資料也不能起到太大的幫助。

題外話:

事實上夏農在通訊的數學理論一書中提出過:

存在一糾錯演算法,使得訊號傳輸過程中的誤位元速率得以任意小。

如果原話理解起來費勁的話,可以理解成:

存在一個糾錯演算法,可以使得錯誤率不為100%的任意情況下通訊得以絕對保真。

唯一的問題在於:為了保真,我們需要付出的額外的冗餘代價是否現實,或者值得。

這一論斷可以認為是通訊領域中最有用也最沒用的一個。

因為這一論斷從事實上可以證明不論通訊多麼差,我們總可能設計出演算法來對通訊進行可靠性保證。

但是這個論斷對於我們實際設計出這些演算法簡直是一點幫助也沒有,充其量也不過是為我們鼓起信心而已。

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?夏雨婷2014-07-23 04:21:52

壓縮檔案損壞後是如何修復的?如果沒猜錯,題主指的是類似WinRAR的恢復記錄的功能,透過增加一些冗餘資料實現整個壓縮文件少部分連續資料損壞得以修復。

CRC確實只是校驗演算法,只能判斷解壓縮後的資料和元資料是否匹配,沒有修復功能,那麼讓你來實現類似WinRAR恢復記錄功能該如何做?

在沒有任何資料和知識的情況下,我的想象力也就達到了在壓縮包尾部疊加一樣的資料,這樣壓縮包的體積就增加了一倍,其中一部分損壞就取另一部分即可。但是WinRAR的文件明確寫著:“If damaged area is continuous, every sector helps to recover 512 bytes of damaged information。”

這已經超出我的知識範圍了。

WinRAR文件還寫著:“RAR 4。x recovery record is based on XOR algorithm。” 這句我看的有點莫名其妙,XOR怎麼還會是演算法?我想到的一個點子是,把壓縮文件對半分,然後按位儲存前半和後半的xor值,這樣“只”需要增加50%的冗餘資料就可以修復整個文件了。

在計算機網路課程,提到了“家喻戶曉”的CRC校驗演算法後,還順帶提了一句所謂“海明碼”:

http://

zh。wikipedia。org/wiki/%

E6%B1%89%E6%98%8E%E7%A0%81

海明碼透過在2的整數次冪插入校驗位可以糾正一位錯誤,但是一位顯然沒有多大的作用,WinRAR的文件也明確指出它有能力解決遠超過一位的錯誤。我曾經以為海明碼就是正確答案,還打算將其擴充套件為支援N位的演算法,直到發現了下面這個“所羅們糾錯演算法”:

http://

en。wikipedia。org/wiki/R

eed%E2%80%93Solomon_error_correction

我認為該演算法就是最終答案。

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?範德成2015-12-10 15:29:44

Reed-Solomon糾錯碼

https://en。wikipedia。org/wiki/Reed%E2%80%93Solomon_error_correction

貌似很有用。

還有Erasure coding和RAID5/6的模式也可以用於糾錯。

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?李魔劍2016-01-28 15:32:34

用糾錯碼這點是肯定的

但不得不說rar這個恢復做得很流弊

rs碼原本的糾錯方式只能算出錯誤的位置,然後xor一下得到正確值

但是rar超出了我的想像

我開ue刪除中間的某段,rar居然還能正常的修復

再進一步試下去會發現rar用的糾錯碼並不是rs碼

原先幾個版本的恢復記錄有10%的上限

不過最近的版本取消了這個限制

用100%恢復記錄的時候可以發現rar原模原樣的複製了一遍內容

可能真如樓上說的rar只是在用異或校驗

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?嗨格式資料恢復大師2021-06-09 12:53:11

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?軟體簡介:是威力非常強大的硬碟資料恢復工具。能夠幫你恢復丟失的資料以及重建檔案系統。嗨格式資料恢復大師不會向你的原始驅動器寫入任何資料,它主要是在記憶體中重建檔案分割槽表使資料能夠安全地傳輸到其他驅動器中。

軟體獲取通道:

專注回收站/硬碟/隨身碟/誤刪檔案資料恢復軟體免費下載

你可以從被病毒破壞或是已經格式化的硬碟中恢復資料。支援長檔名。 被破壞的硬碟中像丟失的引導記錄、BIOS引數資料塊;分割槽表;FAT表;引導區都可以由它來進行恢復。

恢復效果圖:

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?

winrar壓縮檔案是怎麼實現透過恢復記錄使損壞檔案被修復的?

技術有價,資料無價。如果幫到了你,還請多多關注,多多點贊轉發支援,同時在操作過程中如果遇到其它問題的話,也歡迎隨時和我們聯絡。 @嗨格式資料恢復大師

切記:在恢復資料前不能再向本磁盤裡存入任何檔案了!軟體具體的使用方法很簡單,希望可以幫助到你!

標簽: 演算法  冗餘  RAR  糾錯  資料