簡體   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