基础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

posted @ 2021-09-03 13:01  蜗牛请快快跑  阅读(1272)  评论(0)    收藏  举报