天天看点

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不对称加密。

转载请注明出处: