在某个项目中,需要开发一个与native相对应的web前端app,后台用的是java restful接口,请求数据时需要用的3des加密。如果想要请求接口,则需要javascript的加密与java相同,于是在baidu与google进行了大量搜索,在此记录一下过程,并希望能帮助有同样需求的小伙伴。
3des加密,通俗的理解是应用三次DES加密算法,其中有许多参数与标准,此处只介绍 java接口中使用的“etdesede/CBC/PKCS5Padding” ,IvParameterSpec自行配置。
以下是java源码:
Key deskey = "key";
String iv = "01234567";
DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());
SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");
deskey = keyfactory.generateSecret(spec);
Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");
IvParameterSpec ips = new IvParameterSpec(iv.getBytes());cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);
byte[] encryptData = cipher.doFinal(plainText.getBytes(encoding));
return Ba