青 (@tdh) 在 压缩包损坏修复功能的一些内容分享 中发帖
序
在 帖子今天才知道关于压缩格式的事 里看到了对不同压缩软件/格式的讨论:
自己之前也有类似的想法,并尝试进行了简单的研究,也有一些分享,看了看L站似乎没有关于这些的讨论,故开个贴来说一说自己的经验。
快速阅读
文件之所以能修复部分损坏,核心在于“前向纠错”(FEC)技术中的里德-所罗门码(RS codes)。通过预先为文件添加冗余的恢复数据,在文件出错时反推出原始内容;
WinRAR 的“恢复记录”是此技术的典型应用,但 7z、ZIP 等格式本身不支持。不过,任何文件都可通过 Par2 等第三方工具手动创建独立的恢复文件,达到类似效果;
恢复能力取决于冗余“数据块”的数量。例如,创建 5 个恢复块,就能修复任意 5 个数据块的损坏,无论这些块是轻微出错还是完全损坏。目前实践几乎无法应对会波及大量数据块的随机、零散损坏。
问题探讨
约定和前提
压缩包的实质是一个文件...