压缩encryption的文件

是否有一个安装程序,如InstallShield,Wise或任何其他,让我执行encryption文件的压缩(任何格式),如果我给它encryption文件时使用的密码?

基本上,我有一堆已经encryption的文件(他们需要encryption),需要在部署之前压缩,所以安装程序包更小,所以也许有一个ultility或安装程序,让我压缩cab文件或如果我提供密码?

我读了另一个话题,但没有回答我所需要的问题。


感谢所有在这里试图帮助的伟大人士。

也许我应该在这里更详细地…

我的软件有一个办公文件查看器。 它内置于办公室。 我的软件带有真正的Word Tempates,我希望保护它免受“复印机”的影响,所以合法的用户不会受到影响,软件/查看器向用户显示缩略图,当合法用户试图打开tempalte,我的运行“服务“解密文件并打开它没有问题。

现在所有我提供的Word文档模板都是encryption的。 他们仍然显示.doc文件格式,如Template001.doc你不能打开这个没有查看器。 如果你有观众,那么你可以访问所有的tempaltes。

由于非压缩应用到我的文档文件,我的安装程序是500MB如果他们werentencryption,使用LZMA的安装是10MB,你可以看到一个巨大的差异就在那里。

所以我需要保持每个doc文件都被encryption(并且保留它作为相同的文件扩展名),并让安装程序使用LZMA压缩文件。

现在有什么想法?

感谢DC

不幸的是,没有encryption文件看起来像随机噪声,没有办法压缩随机数据。

正如Zach所说,你不能真正压缩encryption数据(如果你幸运的话,你可能会得到1或2%的压缩比)。

处理这个问题的正确方法是解密数据,压缩数据,然后重新encryption该压缩存档。

根据您使用的encryption软件,可能有压缩以及encryption的选项。 你使用什么encryption工具?

如前所述,encryption文件压缩不好(如果有的话)。

您可以尝试的一个select是解密文件,然后使用7-Zip或WinRAR等归档应用程序对其进行压缩,并使用该工具的内置encryptionfunction。 事实上,这样的实用工具的现代版本不仅可以让你encryption文件,甚至是文件名 ,所以如果没有密码,存档就是不透明的。

这些工具还可以创build自解压档案,通常具有不同级别的function(例如创build快捷方式,运行脚本等),从而允许您创build压缩和encryption的安装程序。

为什么不直接encryption压缩文件呢? 这应该工作。

严重的是,如果你的encryptionalgorithm是健全的,你根本不应该能够压缩它,因为不应该有重复的位,或不明显的随机的东西。 如果你得到1%,那么这意味着你的encryptionalgorithm是不健全的,可以进行隐变分析。

我认为你的要求,如果我正确地理解他们是:

  • 存储在磁盘上时,文件应该总是被encryption?
  • 安装包中的文件也应该被encryption?
  • 你的安装包中的文件应该被压缩?

也许有一种方法可以做到这一点:

  • 创buildencryption卷,例如使用truecrypt或cryptfs或Microsoft Encrypted File System
  • 将encryption的文件解密到该卷上的文件夹中
  • 运行打包程序对该文件夹中的文件,压缩它们,然后重新encryption它们

如果您的打包解决scheme本身不支持encryption,则可以这样做:

  • 将您的encryption文件解密到encryption卷上的文件夹中,就像以前的潜在解决scheme一样
  • 将它们压缩在encryption卷内,例如使用winzip或类似的方式将其压缩到单个存档文件中
  • 创build一个新的encryption卷,例如使用truecrypt,只是足够大,以容纳压缩的档案文件
  • 将存档文件复制到新卷中,然后卸载它

现在你有一个encryption的压缩卷,包含你需要的文件。 下一步,创build你的安装包:

  • 添加truecrypt或类似的包
  • 将encryption的压缩卷添加到您的软件包
  • 添加一个脚本到您的软件包中,例如在.msi文件中添加一个自定义脚本,该脚本将使用truecrypt安装encryption的卷,然后安装来自该卷的文件,根据需要进行任何重新encryption

您需要应用encryption前的压缩。

“我的运行”服务“解密文件”

如果所有encryption都是通过程序或“服务”完成的,则只需在实际编码之前应用压缩。 这是一种常用技术,也会增加安全性。

最简单的就是使用zlib进行压缩。

如果您使用其他人/公司的某种encryption服务,请说出我们的服务名称。

为什么不对encryption数据做一个base64'd然后压缩呢? 听起来蹩脚,但至less你会有很多的字母和数字,可以反过来,压缩。 那是我的理论,没有这样试过。

希望这有助于,最好的问候,汤姆。