良好的免费压缩库

时间:2012-05-15 14:55:52

标签: c++ compression

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

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

2)使用此文件(目录)中的内容而不将其取消

3)加密机制

我已经知道了zlib,但是对我来说它很难记录,并且没有写任何功能支持它的地方

2 个答案:

答案 0 :(得分:2)

  

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

大多数档案管理员不要求您使用特定的文件扩展名。无论如何,人们仍然可以在文件上调用file来猜测其内容类型。

  

使用此文件(目录)中的内容而不将其取消

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

  

加密机制

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

  1. 将文件捆绑为一个.tar
  2. .tar归档为.tar.xz
  3. .tar.xz添加到文件列表后跟__ARCHIVE_START__行。
  4. 使用您喜欢的任何加密库加密文件。

答案 1 :(得分:1)

您想要的不是压缩库。您需要压缩,归档和加密库或库。您需要归档才能将文件目录放在一个文件中。

您可以使用zlib执行压缩部分,但不能使用存档或加密。 zlib中记录了zlib.h,您可以看到usage example there以及source distribution package中的许多示例。

您可以构建自己的归档格式,也可以使用现有的归档格式,例如ziptar等库,这两个库都使用或可以指向使用zlib。

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