编译Commons Crypto时提示AES密钥长度问题的解决方法
问题现象描述
执行编译Commons Crypto时报错,报错信息如下。
1 2 | Failded tests: JceCipherTest.checkJceUnlimitedStrength:44 Testing requires suppport for an AES key length of 256,but the detected maximum key length is 128. This may indicate that the test environment is missing the JCE Unlimited Strengeh Jurisdiction Policy Files. |
关键过程、根本原因分析
测试要求AES密钥的长度是256,但是检测到最长支持的密钥长度是128。
结论、解决方案及效果
- 下载jce_policy-8.zip,解压之后替换Java库文件。
1
unzip jce_policy-8.zip
- 进入解压后的文件夹,存在2个JAR包local_policy.jar和US_export_policy.jar。
1 2
cd UnlimitedJCEPolicyJDK8/ ls
- 查看JAVA_HOME目录。
1
cat /etc/profile
- 把local_policy.jar和US_export_policy.jar拷贝到“$JAVA_HOME/jre/lib/security”目录。
1 2
cp local_policy.jar US_export_policy.jar $JAVA_HOME/jre/lib/security ls
- 使用动态库替换静态库,可能会导致运行时找不到对应的库,可以安装对应库的静态形式解决该问题。
- JAVA_HOME目录可以到“/etc/profile”文件确认。
1
JAVA_HOME=/opt/tools/jdk8u222-b10
- 通过Yum源安装所需要的glibc、libstdc++-static。
1 2
yum install libstdc++-static.aarch64 -y yum install glibc* -y
父主题: 故障排除