鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

编译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。

结论、解决方案及效果

  1. 下载jce_policy-8.zip,解压之后替换Java库文件。
    1
    unzip jce_policy-8.zip
    
  2. 进入解压后的文件夹,存在2个JAR包local_policy.jar和US_export_policy.jar。
    1
    2
    cd UnlimitedJCEPolicyJDK8/
    ls
    
  3. 查看JAVA_HOME目录。
    1
    cat /etc/profile
    
  4. 把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
      
  5. 通过Yum源安装所需要的glibc、libstdc++-static。
    1
    2
    yum install libstdc++-static.aarch64 -y
    yum install glibc* -y