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