今天遇到一个问题,在测试服务器上跑一个UT是可以通过的,但是在本地跑的话就fail掉了,一开始我以为是编码的问题,具体问题是从数据库获取对象实例,结果发现其他属性都能正常得到,debug的时候发现使用了AES256的加密方式。加密前是有数据的,加密后直接变成了null。很是无语。
报错信息;
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
其实并不是我的idea编码的问题,而是美国的出口限制,Sun对权限文件 local_policy.jar、US_export_policy.jar 做限制。也就是我们只要把jar包改了就可以了,相应的解答我在stackOverflow找到的,https:///questions/6481627/java-security-illegal-key-size-or-default-parameters,我
们需要替换掉这两个jar包,替换成不受限制的。
jdk 6 版本:Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
jdk 7 版本:Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
jdk 8 版本: Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
我们需要替换掉local_policy.jar、US_export_policy.jar
这两个包,路径在${java.home}/jre/lib/security/
下面,我的是在: