上一话说到HTTP数据传输用Gzip方式压缩,用springboot分别写了客户端和服务端的代码测试。
对应博客地址
Java数据压缩HTTP方式传输Gzip(附带测试代码及springboot-HTTP客户端服务端代码)
本文场景:
在数据传输中,除了需要压缩数据大小,如果传输的是敏感数据,例如用户信息等,就需要加密。
本文用到的加密算法是AES
首先贴一下AESUtils工具类代码
package com.yolanda.mycompressclient.encrypt;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
/**
* @Author:Yolanda
* @Date: 2020/5/9 9:51
*/
public class AESUtils {
private static final String GZIP_ENCODE_UTF_8 = "UTF-8";
private static byte[] keyValue = new byte[] {
//用户密钥
22,25,-35,-45,25,98,-55,-45,10,35,-45,25,
26,-95,25,-65,-78,-99,85,45,-62,10,-0,11,
-35,48,-98,65,-32,14,-78,25,36,-56,-45,-45,
12,15,-35,-75,15,-14,62,-25,33,-45,55,68,-88
};
private static byte[] iv = new byte[] {
//算法参数
-12,35,-25,65,45,-87,95,-22,-15,45,55,-66,32,5-