我可以压缩加密文件吗?

我可以压缩加密文件吗?

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

答案1

您可以压缩它,但不太可能节省太多磁盘空间。从本质上讲,加密很少能让文件压缩很多。

亲自尝试一下,看看是否可以节省文件大小。

一个数据点:

-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

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 时。

当然,由于加密软件和/或压缩软件不同,您的体验可能会有所不同。

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

答案2

如果加密效果好的话,情况就不会如此。压缩涉及识别数据中的模式,并创建引用这些模式的“速记”以供以后提取。

如果加密效果好,文件看起来就像随机噪音,由于缺乏模式,压缩效果不会很好。当然,你可以把它放入存档文件(.zip、.gz 等),但你不太可能让它变小很多。

答案3

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

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

对于压缩程序,Unix 世界更喜欢tar使用gzip/ bzip2(通常在 tar 中使用,如tar czf foo.tar.gz foo),而 Windows 用户更喜欢压缩压缩文件或者7z

答案4

加密文件将失去使压缩有效的统计属性,因此压缩加密文件几乎不会节省任何空间。在加密压缩文件之前,您应该先压缩文件(此时它仍然表现良好)。除此之外,当您解压文件时,压缩不会影响文件的原始内容。

相关内容