-1

我需要压缩库来满足以下需求:

1) 将目录打包在一个文件中,扩展名是我选择的(例如 .pack )

2) 使用此文件(目录)中的内容而不解压缩它

3) 加密机制

我已经知道 zlib,但对我来说,它的文档很丑陋,并且没有写在任何地方,它支持哪些功能

4

2 回答 2

2

使用我选择的扩展名将目录打包在一个文件中(例如 .pack )

大多数存档程序不要求您使用特定的文件扩展名。无论如何,仍然可以调用file文件来猜测其内容类型。

使用此文件(目录)中的内容而不解压缩它

可以手动创建一个文件列表并将其添加到任何存档文件之前。通常,.shLinux 的安装程序在开头包含一个 shell 脚本,然后是一些神奇的行,例如__ARCHIVE_START__二进制存档。因此,可以从文件中读取行,直到__ARCHIVE_START__行被读取。该文件的其余部分是一个存档文件。

加密机制

一种简单的方法是使用不同的库进行归档和加密:

  1. 将文件捆绑为一个.tar.
  2. 存档.tar成说.tar.xz
  3. .tar.xz在文件列表前面加上__ARCHIVE_START__行。
  4. 使用您喜欢的任何加密库加密文件。
于 2012-05-15T15:33:37.930 回答
1

你想要的不是压缩库。您需要一个或多个压缩、归档和加密库。您需要归档以将文件目录放入单个文件中。

您可以使用 zlib 进行压缩部分,但不能存档或加密。 zlib记录在zlib.h中,您可以在那里看到一个使用示例,以及源代码分发包中的许多示例。

您可以构建自己的存档格式,也可以使用现有的存档格式,其中包含ziptar等库,这两种格式都使用或可以指导使用 zlib。

您可以使用OpenSSL进行强加密。

于 2012-05-15T15:48:34.817 回答