代码之家  ›  专栏  ›  技术社区  ›  Liudvikas Bukys

恢复损坏的zip或gzip文件?

  •  5
  • Liudvikas Bukys  · 技术社区  · 16 年前

    破坏压缩文件的最常见方法是无意中进行ASCII模式FTP传输,这会导致CR和/或LF字符的多对一破坏。

    但是,如果原始数据丢失了,而且很重要,那么数据的可恢复性如何?

    [事实上,我已经知道我认为最好的答案是什么(这很难,但有时可能-我稍后会发布更多),以及常见的非答案(许多现成的程序用于修复CRC而不修复数据),但我认为在stackoverflow测试期间尝试这个问题会很有意思,看看是否有其他人走上了成功的恢复之路,或者发现了我不知道的工具。]

    2 回复  |  直到 16 年前
        1
  •  4
  •   Marek Grzenkowicz    13 年前

    从…起 Bukys Software

    腐败,腐败就是 值“\012”。所以字节错误率 为1/256(输入的0.39%),为2/256 字节(输入的0.78%)可疑。 但是因为每颗只有三个位元 只有3/(256*8):0.15%不好,0.29%

    ...

    压缩输入中的错误 中断了的解压缩过程 所有后续字节…事实上 解压缩后的输出是 为了希望——寻找正确的答案 答案可以识别错误的答案

    最终,开发了几种技术 结合成功提取

    • 字段和带引号字符串的特定于域的解析
    • 从以前的数据进行机器学习,具有较低的损坏概率
    • 由于其他原因(例如磁盘已满)导致的文件损坏的容差
    • 引导搜索沿着最高概率路径向前看

    这些技术识别了75%的 其余部分将进行探讨 合理的重建是可行的

        2
  •  1
  •   jsight TaherT    16 年前

    您可以尝试编写一个小脚本,用CRLF替换所有CRs(假设垃圾的方向是CRLF到CR),每个块随机交换它们,直到获得正确的crc。假设数据不是特别大,我想在宇宙热死之前,可能不会使用所有的CPU。