0

我在做实验。我用这个词创建了一个 .txt 文件hi并运行gzip test.txt它来压缩它。这给了我一个包含以下字节的文件 test.txt.gz:

1F 8B 08 08  E6 E8 3F 60  00 03 62 2E  74 78 74 00
CB C8 04 00  AC 2A 93 D8  02 00 00 00

用软件101编辑器发现第一行就是表头。

CB C8 04 00是压缩数据

AC 2A 93 D8是“数据部分的CRC”

02 00 00 00是“未压缩输入的大小”

我正在尝试做的事情(我什至不知道这是否可能):我希望将自己的字符作为“压缩”数据,但希望 .gz 文件仍然有效。

我尝试用CB C8 04 0062 62 62 62字母 'b' 4 次)替换,但该文件无效。然后我也尝试AC 2A 93 D8用“bbbb”的CRC32值替换,但文件仍然无效。我解压不了 运行gzip -d test.txt.gz返回“文件意外结束”。

我想做的事有可能吗?如果是:我做错了什么?

4

1 回答 1

1

CB C8 04 00是一个有效的放气流。62 62 62 62不是。gzip 成员是一个 gzip 标头、一个有效的 deflate 流和一个 gzip 预告片。

Deflate 流在RFC 1951中定义。

于 2021-03-04T01:45:58.550 回答