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

ala*_*mar 2 unix gzip padding

假设我有一些文字,例如“ Feef”。我可以gzip压缩,结果是24个字节。有没有一种方法可以gzip压缩,因此结果将是1024个字节?它应该仍然是有效的gzip流,即在解压缩时不会生成消息“忽略跟踪垃圾”。

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

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

Mar*_*ler 5

gzip标头允许最多65535个字节的额外字段,该字段可以包含任意数据,并且在解压缩时将被忽略。因此,您可以更改gzip标头以插入额外的字段,以将文件填充到所需的长度。有关格式说明,请参见RFC 1952。如果您不在乎gzip标头中的文件名,则可以将其设置为任意长度,以将其填充为任意大小。或者,如果您希望使用64K以上的文件,并且不想破坏文件名,则可以根据需要添加空的gzip流以添加它。