创建给定大小的gzip块(填充)

时间:2015-10-01 08:44:53

标签: unix gzip padding

想象一下,我有一些文字,比如'Feef'。 我可以gzip它,结果是24个字节。 有没有办法gzip它所以结果将是1024字节?它应该仍然是一个有效的gzip流,即它在解压缩时不会生成消息“trailed garbage ignored”。

我将如何使用它:将数据头Gzip固定为固定大小。附加gzip压缩数据体。更新标题,将其gzip到相同的固定大小并覆盖。

你可以连接gzip流,它仍然是有效的gzip,但它们必须是正确的流。也许有办法填充gzip输出?

1 个答案:

答案 0 :(得分:5)

gzip标头允许最多65535字节的额外字段,该字段可以包含任意数据,并且在解压缩时会被忽略。因此,您可以更改gzip标头以插入额外的字段以将文件填充到所需的长度。有关格式说明,请参阅RFC 1952。如果您不关心gzip标头中的文件名,则可以将任意长度填充到任意大的尺寸。或者,如果你想要超过64K并且不想使用文件名,你可以添加空的gzip流,只要你愿意就可以使用它。