2012-11-01 34 views
0

我正在C中的遠程備份項目... 我想發送數據和壓縮以及加密數據。壓縮和加密...首先應用哪個?

但是我很疑惑是先壓縮還是先加密!

將會有什麼更好的?:

  1. 壓縮數據,然後對其進行加密
  2. 對數據進行加密,然後壓縮它

而且我將使用zlib壓縮。 而我想知道哪個加密庫使用... 有人說libgcrypt是好的。 好的加密庫的建議(非常容易使用)將不勝感激... :)

或者是否有什麼做這兩個工作?

謝謝!

回答

9

你應該在加密前壓縮。

任何好的加密算法都會產生無法壓縮的隨機數據。

+0

+1瞭解和速度。我幾乎擊敗你! – slashingweapon

+1

雖然如果源數據在文件中的已知點處具有已知的壓縮標頭,您很容易受到已知的明文攻擊。 –

+0

謝謝! C中的任何好的庫都知道加密和解密? – Sam

-3

我最喜歡易寫,理解和使用的算法是blowfish。在這個鏈接中有幾個實現在代碼的一些優先權。

它與AES/DES等大致相同的安全級別,即非常牢不可破。與所有加密一樣,真正的漏洞將會是你和你的用戶!

+0

這是不正確的。 Blowfish沒有接近AES安全級別的地方,並且DES由於非常小的密鑰大小而被有效破壞。 Blowfish使用64位塊大小,所以無論模式如何,生日悖論告訴我們,在(2^32 * 8)= 32GB數據後,您將開始泄漏信息。 – mfanto

+0

如果您使用「passwd」作爲密碼,或者將私鑰包含在PS3的固件中,那麼它同樣安全。加密的問題通常是人們的想法 - 我將使用庫中最令人印象深刻的聽起來mil-spec例程 –

+0

是的,河豚是要走的路(作者是布魯斯·施奈爾!)。但是,這一切都與你如何使用它有關:確保使用正確的分組密碼模式以確保有足夠的強度抵禦加密攻擊 –