天天看點

Java的壓縮、解壓及壓縮加密、解密解壓 例子

           為了節約帶寬、加快傳送速度,http協定支援gzip的壓縮,但如果我們的app與背景不是通過http協定通訊的,那麼壓縮、解壓這個流程需要自己寫。下面給出compress和decompress的代碼:

           盡快壓縮後的資料不可視,但有心人很容易通過攔截資料包很快猜想到這是gzip壓縮格式并給出解壓程式,對于遊戲領域、金融領域的應用,通訊過程的加密尤為重要。

     Blowfish算法免費、速度快,不宜破解(關鍵是key資料不要洩露),在及時加密、解密中應用廣泛。下面以Blowfish算法為例簡單講下資料的壓縮、加密盒解密、解壓過程。

  1、定義keySpec,用來儲存key資料的object:

static private SecretKeySpec keySpec;

byte[] key=KeyGenerator.getInstance("Blowfish").generateKey().getEncoded();

keySpec = new SecretKeySpec(key, "Blowfish");

  2、再定義getCipher方法,根據mode獲得加密/解密的Cipher Object:

3、下面是對w_str的壓縮、加密和解密、解壓:

當然,對于極度重要的資料,為了安全起見,權衡加解密速度、破解難度等方面,個人建議還是用AES不對稱加密。

轉載請注明出處: