|
@@ -6,13 +6,11 @@ import javax.crypto.Cipher;
|
|
import javax.crypto.spec.IvParameterSpec;
|
|
import javax.crypto.spec.IvParameterSpec;
|
|
import javax.crypto.spec.SecretKeySpec;
|
|
import javax.crypto.spec.SecretKeySpec;
|
|
|
|
|
|
-import sun.misc.BASE64Decoder;
|
|
|
|
-import sun.misc.BASE64Encoder;
|
|
|
|
|
|
+import java.util.Base64;
|
|
|
|
|
|
/**
|
|
/**
|
|
* AES 是一种可逆加密算法,对用户的敏感信息加密处理 对原始数据进行AES加密后,在进行Base64编码转化;
|
|
* AES 是一种可逆加密算法,对用户的敏感信息加密处理 对原始数据进行AES加密后,在进行Base64编码转化;
|
|
*/
|
|
*/
|
|
-@SuppressWarnings("restriction")
|
|
|
|
public class AESOperator {
|
|
public class AESOperator {
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -40,7 +38,7 @@ public class AESOperator {
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());// 使用CBC模式,需要一个向量iv,可增加加密算法的强度
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());// 使用CBC模式,需要一个向量iv,可增加加密算法的强度
|
|
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
|
|
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
|
|
byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
|
|
byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
|
|
- return new BASE64Encoder().encode(encrypted);// 此处使用BASE64做转码。
|
|
|
|
|
|
+ return Base64.getEncoder().encodeToString(encrypted);// 此处使用BASE64做转码。
|
|
}
|
|
}
|
|
|
|
|
|
// 解密
|
|
// 解密
|
|
@@ -51,7 +49,7 @@ public class AESOperator {
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
|
|
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
|
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
|
- byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);// 先用base64解密
|
|
|
|
|
|
+ byte[] encrypted1 = Base64.getDecoder().decode(sSrc);// 先用base64解密
|
|
byte[] original = cipher.doFinal(encrypted1);
|
|
byte[] original = cipher.doFinal(encrypted1);
|
|
String originalString = new String(original, "utf-8");
|
|
String originalString = new String(original, "utf-8");
|
|
return originalString;
|
|
return originalString;
|
|
@@ -68,7 +66,7 @@ public class AESOperator {
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());// 使用CBC模式,需要一个向量iv,可增加加密算法的强度
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());// 使用CBC模式,需要一个向量iv,可增加加密算法的强度
|
|
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
|
|
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
|
|
byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
|
|
byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
|
|
- return new BASE64Encoder().encode(encrypted);// 此处使用BASE64做转码。
|
|
|
|
|
|
+ return Base64.getEncoder().encodeToString(encrypted);// 此处使用BASE64做转码。
|
|
}
|
|
}
|
|
|
|
|
|
// 解密 + sKey
|
|
// 解密 + sKey
|
|
@@ -79,7 +77,7 @@ public class AESOperator {
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
|
|
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
|
|
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
|
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
|
|
- byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);// 先用base64解密
|
|
|
|
|
|
+ byte[] encrypted1 = Base64.getDecoder().decode(sSrc);// 先用base64解密
|
|
byte[] original = cipher.doFinal(encrypted1);
|
|
byte[] original = cipher.doFinal(encrypted1);
|
|
String originalString = new String(original, "utf-8");
|
|
String originalString = new String(original, "utf-8");
|
|
return originalString;
|
|
return originalString;
|