尽管 CRC 错误,仍强制 gzip 解压缩

2024-05-04

我认为有办法做到这一点,但我不确定如何做?基本上,我正在编写一个压缩程序,当我尝试解压缩压缩数据时,该程序导致了 crc 错误。通常,这意味着解压缩器实际上将我的数据识别为正确的格式并将其解压缩,但是当它将结果与 CRC 指示的预期长度进行比较时,它们并不相同。

然而,出于比较的原因,我实际上确实想查看输出,看看它是否只是一个串联问题(如果解压缩的输出不是乱码而是顺序错误,那么这应该相对明显)。


You said "unzip", but the question says "gzip". Which is it? Those are two different programs that operate on two different formats. I will assume gzip. Also the length is not "indicated by the CRC". The gzip trailer contains a CRC and an uncompressed length (modulo 232), which are two different things.

The gzip命令将解压缩所有有效的 deflate 数据并在检查 crc 之前将其写出。例如,如果我采取.gz文件并仅损坏末尾的 crc(或长度),然后执行以下操作:

gzip -dc < corrupt.gz > result

那么结果将是整个、正确的未压缩数据流。无需修改和重新编译gzip,也不编写自己的 ungzipper。 gzip 会抱怨 crc,但所有数据都会被写入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管 CRC 错误,仍强制 gzip 解压缩 的相关文章

随机推荐