微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用其他数据替换 gzip 压缩数据并仍然具有有效的 .gz 文件?

如何解决如何用其他数据替换 gzip 压缩数据并仍然具有有效的 .gz 文件?

我正在试验。我创建了一个带有 hi 字样的 .txt 文件并运行 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 00 替换为 62 62 62 62(字母 'b' 4 次),但该文件无效。然后我尝试将 AC 2A 93 D8 也替换为“bbbb”的 CRC32 值,但该文件仍然无效。我解压不了运行 gzip -d test.txt.gz 会返回“意外的文件结尾”。

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

解决方法

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

放气流在 RFC 1951 中定义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。