我可以压缩加密文件吗?

Blu*_*ene 6 backup compression encryption

我有一个加密文件(AES 对称加密)。出于备份目的和节省磁盘空间,我可以压缩(无损)文件而不用担心弄乱解密吗?如果是这样,您能为此目的推荐一些好的压缩程序吗?

Gen*_*mer 17

您可以压缩它,但不太可能节省大量磁盘空间。就其性质而言,加密很少使文件可压缩很多。

亲自尝试一下,看看是否有任何文件大小节省。

一个数据点:

-rw-r----- 1 gene    gene    2428671 2009-06-02 12:39 test.log
-rw-r----- 1 gene    gene     134524 2009-06-02 12:39 test.log.bz2
-rw-r----- 1 gene    gene     217162 2009-06-02 12:38 test.log.gz
-rw-r--r-- 1 gene    gene     263229 2009-06-02 12:47 test-AES.gpg
-rw-r--r-- 1 gene    gene     264833 2009-06-02 12:42 test-AES.gpg.bz2
-rw-r--r-- 1 gene    gene     263302 2009-06-02 12:41 test-AES.gpg.gz
-rw-r--r-- 1 gene    gene     134609 2009-06-02 12:43 test-bz2-AES.gpg
-rw-r--r-- 1 gene    gene     217246 2009-06-02 12:43 test-gz-AES.gpg
Run Code Online (Sandbox Code Playgroud)

test.log是原始的,并且test.log.bz2test.log.gz分别用 bzip2 和 gzip 简单压缩。

如果我对其进行加密 ( gpg --symmetric --cipher-algo AES --output test-AES.gpg test.log),则加密文件 ( test-AES.gpg) 会比压缩版本稍大。压缩加密文件实际上会增加一点大小(test-AES.gpg.bz2test-AES.gpg.gz)。

先压缩然后加密确实显示了一些节省(test-bz2-AES.gpgtest-gz-AES.gpg),尤其是使用 bzip2。

当然,您的体验可能因不同的加密软件和/或不同的压缩软件而异。

您应该考虑仅通过加密获得的文件大小节省是否足够,或者压缩然后加密是否值得在此过程中执行额外的步骤。


小智 11

如果加密有任何好处,则不会。压缩处理识别数据中的模式并创建引用这些模式以供以后提取的“速记”。

如果您的加密良好,则文件看起来像随机噪声,并且由于缺少模式,因此不会压缩得太多。当然,您可以将其放入存档文件(.zip、.gz 等)中,但您不太可能让它变得更小。


use*_*686 8

压缩程序不会以任何方式修改实际数据 - 如果修改,它们将毫无用处。(声音和图像压缩是一个例外,因为人眼看不到如此小的变化,而计算机可能会因单个翻转位而窒息。)所以是的,您可以压缩加密文件。

但由于加密数据与随机数据非常相似,因此压缩得不是很好——因此,如果可以,请在加密之前进行压缩。否则“压缩”将毫无用处。

对于压缩程序,Unix 世界更喜欢targzip/ bzip2(通常在 tar 中使用,如tar czf foo.tar.gz foo),而 Windows 用户更喜欢ZIPRAR7z

  • @EK:我从来没有听说过这个。任何严格的加密算法对于“任何”源数据都应该是安全的,无论其性质如何。您的索赔有任何参考资料吗? (2认同)