2016-07-06 11 views
0

Wikipedia article for Gzipには、「CRC-32チェックサムと元の圧縮されていないデータの長さを含む8バイトフッタ」があると言われています。なぜ圧縮データのCRCの代わりに非圧縮データのCRCを付加するのですか?なぜ圧縮されていないデータと圧縮されたデータのCRCを使用していますか?

CRCを確認する前に、データストリーム全体を処理し、Deflateアルゴリズムで実行するなどの短所しか考えられません。

答えて

2

私はgzipがデータを圧縮する方法にいくつかの自由を持っていると思うので、圧縮されたデータのcrcを計算すると異なるチェックサムが得られる可能性があります。圧縮されていないデータのcrcを計算すると、同じcrcが圧縮され、解凍され、別のアルゴリズムで圧縮されていることを意味します。

最後に、あなたが気にするのは、圧縮解除されたデータが必要なものだということです。圧縮アルゴリズムまたは圧縮解除アルゴリズムにバグがある可能性があります。圧縮されたデータのためのcrcはそれを見つけません。

+0

+1正解。圧縮されたデータ上のCRCは、送信/記憶エラーを検出するだけである。圧縮されていないデータのCRCは、圧縮/解凍のバグと同様にバグを検出します。 –

関連する問題