繁体   English   中英

压缩的加密文件大于源

[英]compressed encrypted file is bigger then source

我从python中的文本文件创建了一个加密文件。 健壮地使用pycrypto。

所以我的源文本文件是33742字节,加密版本是33752。到目前为止还可以,但是...

当我用tar -czvf压缩test.enc(加密的测试文件)时,最终文件为33989字节。 加密源文件后,为什么压缩不起作用?

到目前为止,唯一的选择似乎是先对其进行压缩,然后再对其进行加密,这是因为该文件仍然很小。

压缩通过识别数据中的模式来起作用。 由于您无法识别加密数据中的模式(这就是重点),因此无法对其进行压缩。

对于产生33,742字节输出的完美加密算法,理想情况下,您所能确定的有关解密后的原始数据的全部内容就是可以容纳33,742字节,但仅此而已。 如果您可以将其压缩为31,400字节,那么您会立即知道输入数据不是32,000字节的随机数据,因为随机数据是无模式的,因此不可压缩。 那将表明加密方案方面的失败。 解密的数据是否随机与谁无关。

tar -z使用的压缩方法依赖于输入文件中的重复模式,并用重复的模式计数(严重简化)来替换这些模式。

但是,当您加密文件时,您基本上是在试图将所有重复模式隐藏在看起来尽可能“随机”的噪声中。 这使您的文件几乎不可压缩。 将其与存档和压缩文件格式(元数据等)的开销结合起来,实际上文件最终会稍大一些。

您应该撤消该过程; 先进行压缩, 然后再进行加密,您将大大增加获得较小的有效负载的机会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM