import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.IvParameterSpec;
public class EncryptUtils {
private static String KEY = "24位";
private static String DIRECT = "";
public static String decryptThreeDESCBC(String param) {
String clearText = null;
try{
BASE64Decoder base64Decoder =new BASE64Decoder();
byte[] data =base64Decoder.decodeBuffer(param);
byte[] key=KEY.getBytes("gb2312");;
byte[] direct=DIRECT.getBytes("gb2312");
DESedeKeySpec dks = new DESedeKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("desede");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("desede" + "/CBC/PKCS5Padding");
IvParameterSpec ivp = new IvParameterSpec(direct);
cipher.init(Cipher.DECRYPT_MODE, securekey,ivp);
byte[] lightByte = cipher.doFinal(data);
clearText =new String(lightByte,"gb2312");
}catch (Exception e){
System.out.println(e.getMessage());
}
return clearText;
}
public static String encryptThreeDESCBC(String param) throws Exception {
final DESedeKeySpec dks = new DESedeKeySpec(KEY.getBytes("gb2312"));
final SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
final SecretKey securekey = keyFactory.generateSecret(dks);
final IvParameterSpec iv = new IvParameterSpec(DIRECT.getBytes("gb2312"));
final Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, securekey,iv);
final byte[] b = cipher.doFinal(param.getBytes());
final BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(b).replaceAll("\r", "").replaceAll("\n", "");
}
}
极简之3DES加密CBC模式
最新推荐文章于 2023-01-24 12:06:31 发布