正常加解密的方式
文章 1
文章 2
JCE的问题
正常的配置也添加了,但是启动报错
[ERROR] [2022-06-08 16:45:09,871] [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter] [main] [] [] []
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'spring.datasource.dynamic.datasource.orgexmng.password' to java.lang.String:
Reason: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine
Action:
Update your application's configuration
我也不太懂,简单来说是Java因为版本的问题 对于加密方法做了限制,看网上很多方法就是下载安全策略的包,然后修改下配置就行,但是对我们来说生产上机器太多不现实,最简单的方法是升级Java的版本
但是我们这说的也不是很正确,151以上的版本有的是默认无限制的,不需要修改配置,可以通过命令来查看该版本是否是被限制的,我查看了172,181版本都是没有问题,所以升级版本就完事了
jrunscript -e 'exit (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") >= 256);'; if [ $? -eq 1 ]; then echo "JCE Unlimited OK"; else echo "JCE NOT Unlimited"; fi
无限制版本输出:JCE Unlimited OK
限制版本输出:JCE NOT Unlimited
========================================
无限制版本下载地址:JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download
PS: ${JAVA_HOME}/jre/lib/security/java.security
crypto.policy=unlimited
这行配置被注释掉时使用的时unlimited配置。后面的值对应${JAVA_HOME}/jre/lib/security/policy下面的目录。