0
Wikipedia article for Gzip表示存在“8字节页脚,包含CRC-32校验和以及原始未压缩数据的长度”。为什么他们追加未压缩数据的CRC而不是压缩数据的CRC?为什么使用未压缩与压缩数据的CRC?
我只能想到诸如在验证CRC之前必须处理整个数据流,通过Deflate算法运行它的缺点。
Wikipedia article for Gzip表示存在“8字节页脚,包含CRC-32校验和以及原始未压缩数据的长度”。为什么他们追加未压缩数据的CRC而不是压缩数据的CRC?为什么使用未压缩与压缩数据的CRC?
我只能想到诸如在验证CRC之前必须处理整个数据流,通过Deflate算法运行它的缺点。
我认为gzip在压缩数据方面有一定的自由度,因此计算压缩数据的crc可以给出不同的校验和。计算未压缩数据的crc意味着您使用不同的算法压缩,解压缩相同的crc。
最后,你关心的是解压缩的数据是它应该是什么。您可能在压缩或解压缩算法中存在错误;压缩数据的crc不会找到。
+1正确。压缩数据上的CRC只会检测到传输/存储错误。对未压缩数据的CRC可以检测到压缩/解压缩中的任何错误。 –