基础JDK更新解决AES加密报错


研发某个项目进行AES 256方式加密时报错

解决方式:更新JDK基础镜像

步骤:

1.更换JCE的库

文件位置在你的JDK/jre/lib/security 目录,目录下我们可以看到两个jar包:local_policy.jarUS_export_policy.jar,这两个jar包是jdk自带的。我们需要下载支持256位密钥加密的jar包

JDK8:
其对应的JCE下载地址为:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

下载完后,解压,将其中的local_policy.jarUS_export_policy.jar两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是对应自己Java路径)

2.linux环境JDK1.8以上的该目录下可能没有这两个JAR包

解决方式为:
vim 命令打开java.security文件,将注释掉的#crypto.policy=unlimited 打开,然后保存即可

3.Docker中操作方法

1.拉取原镜像查看:

docker pull xxx.com/aaa-test/java:8

2.进容器确认环境信息,如jdk目录位置

docker run -it  --rm --name jdk_update_test xxx.com/aaa-test/java:8-aes /bin/bash

3.重新构建更新jdk镜像:

将下载的local_policy.jarUS_export_policy.jar,放在与Dockerfile同级目录
Dockerfile内容:

FROM xxx.com/aaa-test/java:8
ENV SECURITY_PATH=/data/jdk1.8.0_191/jre/lib/security/
#将2个jar包拷贝到/data/jdk1.8.0_191/jre/lib/security/目录
COPY *_policy.jar $SECURITY_PATH/
#将java.security配置里的 #crypto.policy=unlimited 打开注释
RUN sed -i 's/#crypto.policy=unlimited/crypto.policy=unlimited/g' $SECURITY_PATH/java.security

4.构建镜像

docker build -t xxx/aaa-test/java:8-aes .

5.运行测试,检查更新的jdk镜像里配置和包都正常修改:

docker run -it  --rm --name jdk_update_test xxx.com/aaa-test/java:8-aes /bin/bash

6.镜像推送到镜像仓库

docker push  docker push xxx.com/aaa-test/java:8-aes

其它:
问题参考:https://blog.csdn.net/tomatocc/article/details/85096911


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM