String result="一段加密的字符串";
byte[] textBytes = Base64.decodeBase64(result);
AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes);
SecretKeySpec newKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
Cipher cipher = null;
cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, newKey, ivSpec);
String string2 = new String(cipher.doFinal(textBytes), "UTF-8");//机密完的字符串
今天对接一个客户的接口,使用的解密方式之前没遇到过,用Cipher这个进行加解密,几行代码中就碰到了两次报错,而且是比较少见的,百度上面好不容易才搜到两个,特此记录仪一下。
1、如果报错:java.security.InvalidKeyException: Illegal key size
请更换 JDK路径\jre\lib\security 文件底下的local_policy.jar和US_export_policy.jar
详情请参考:http://bbs.youkuaiyun.com/topics/340263760
2、如果报错:java.lang.SecurityException: Cannot set up certs for trusted CAs
请更换 jce.jar 包 或者使用更高版本的JDK
详情请参考:http://blog.youkuaiyun.com/tomy_xu_1981/article/details/539323