我有一些文件,有一些随机字节和多个 gzip 文件。如何在某个文件中找到 gzip 流的开头和结尾? gzip 流之间有许多随机字节。所以,基本上我需要找到任何 gzip 文件并从那里获取它。
读自RFC 1952 - GZIP https://www.rfc-editor.org/rfc/rfc1952#page-5:
每个 GZIP 文件只是一堆数据块(称为成员),每个数据块对应包含的每个文件。
每个成员以以下字节开头:
- 0x1F(ID1)
- 0x8B(ID2)
- 压缩方法。0x08 for a
DEFLATE
d 文件。 0-7 是保留值。
- 旗帜。这前三位被保留并且必须为零.
- (4 个字节)最后修改时间。可以设置为 0。
- 额外标志,由压缩方法定义。
- 操作系统,实际上就是文件系统。 0=FAT、3=UNIX、11=NTFS
成员的结尾未定界。你必须实际走动整个成员。请注意,连接多个有效的 GZIP 文件会创建一个有效的 GZIP 文件。另请注意,超出成员may仍然会导致成功读取成员(除非解压缩库完全失败)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)