一、问题描述:
今天在公司的库中clone了项目后,run后提示Could not initialize class javax.crypto.JceSecurity
二、解决方法:
不同jdk中对应的US_export_policy.jar和local_policy.jar也不同。之前使用的是jdk1.6所以会报错,因为在idea中设置的jdk和jre都是1.7,所以在
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
下载了jdk1.7对应的版本就可以了。
三、扩展总结:
US_export_policy.jar和local_policy.jar是锤子用的?
百度搜索的答案:
由于信息安全在军事等方面极其重要,如在第二次世界大战期间,使用了无线电,若是能够成功解密敌方的机密情报,往往预示着战争的胜利,
因此美国对加密解密等软件进行了出口限制,JDK中默认加密的密钥长度较短,加密强度较低,而UnlimitedJCEPolicyJDK7中的文件则没有这样的限制,因此为了获得更好的加密强度,需要替换掉那两个文件。
JCE是java加密扩展包,由于美国出口限制规定,JCE对部分国家是限制出口的,致使其加密长度有所缩减,例如,DES算法因受到军事出口限制,目前仅提供56位的密钥长度,而实际安全要求至少要128位。对于出口限制,SUN公司通过权限文件做了相应限制(local_policy.jar和US_export_policy.jar),而UnlimitedJCEPolicyJDK7就是用来减少相关限制的相关文件。
另附JCE6,JCE7,JCE8的链接
JCE6
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/jce-6-download-429243.html
JCE7
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JCE8
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
四、参考博客:
https://blog.csdn.net/yweijie2008/article/details/48972451
纪念实习的第二天6/13,继续加油~~!!!