python - 压缩后的加密文件比源文件大

标签 python python-2.7 pycrypto

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

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

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

到目前为止,唯一的选择似乎是先压缩它,然后再加密它,因为这样文件就会保持那么小。

最佳答案

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

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

关于python - 压缩后的加密文件比源文件大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544061/

相关文章:

Python套接字编程和ISO-OSI模型

python - 我可以为 tkinter 图标使用哪些文件格式?

java - 使用 AES-CFB 在 Python 中加密并在 Java 中解密

python - Pycrypto:递增点击率模式

python - 使用opencv检测曲线形状的中心

python - 在 python 中排序字典列表

Python2 导入 |识别丢失的库

C# AES CBC PKCS7 到 Python

python - 无法使用 Beautiful Soup 下载所有图像