java AES加密遇到的一些问题
2017-04-11 14:59
686 查看
java AES加密遇到的一些问题
AES加密工具类见:https://github.com/scottyab/AESCrypt-Android/blob/master/aescrypt/src/main/java/com/scottyab/aescrypt/AESCrypt.java1.Android支持PKCS7Padding填充方式,而java默认支持PKCS5Padding,
报错:java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding
解决方法:1.通过BouncyCastle组件来让java里面支持PKCS7Padding填充,BouncyCastle组件下载链接:http://www.bouncycastle.org/
2.
public static byte[] encrypt(final SecretKeySpec key, final byte[] iv, final byte[] message) throws GeneralSecurityException { IvParameterSpec ivSpec = new IvParameterSpec(iv); /** * 这个地方调用BouncyCastleProvider *让java支持PKCS7Padding */ Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); final Cipher cipher = Cipher.getInstance(AES_MODE); cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec); byte[] cipherText = cipher.doFinal(message); log("cipherText", cipherText); return cipherText; }
2.java.security.InvalidKeyException: Illegal key size
原来是jdk不兼容的问题,我本地以及同事的测试环境都是jdk1.7,而我搭建的环境用的是jdk1.8解决方案如下:
处理办法: 在官方网站下载JCE无限制权限策略文件
JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_p
4000
olicy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件
相关文章推荐
- Java赋值运算符(+=、-=、*=、/=)使用中遇到的一些问题
- JAVA aes加密在linux中的问题
- 使用JAVA进行MD5加密后所遇到的一些问题
- 自己初学Java给自己设计的排序算法遇到的一些问题
- java 做项目时遇到的一些问题
- 在基于 Java 语言的编程中我们经常遇到的一些问题
- 【最近面试遇到的一些问题】JAVA UTF-8 GB2312 编码互转
- 在浏览器运行 java applet时遇到的一些问题及其解决方法
- java一些疑问的求证和遇到的问题
- 续:Java Tomcat 中调用.net DLL的方法 - 实际部署中遇到的一些问题解决
- C语言的3des、java的3des、C#的3des。三种加密遇到的问题
- 【最近面试遇到的一些问题】Java中取小数点后两位(四种方法)
- java 实习遇到的问题和一些小经验(第一个月)
- 在浏览器运行 java applet时遇到的一些问题及其解决方法
- 重装系统后使用java遇到的一些小问题
- Java和C#访问同一个数据库遇到的一些问题
- java界面设计遇到的一些问题,往容器直接添加组建好事getContentPane()
- 有关java定时发送邮件遇到的一些问题
- 初步学习java时遇到的一些问题及对初学朋友们的鼓励
- Php AES加密、解密与Java互操作的问题