正常加解密的方式

文章 1

文章 2

链接

JCE的问题

正常的配置也添加了,但是启动报错

  1. [ERROR] [2022-06-08 16:45:09,871] [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter] [main] [] [] []
  2. ***************************
  3. APPLICATION FAILED TO START
  4. ***************************
  5. Description:
  6. Failed to bind properties under 'spring.datasource.dynamic.datasource.orgexmng.password' to java.lang.String:
  7. 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
  8. Action:
  9. Update your application's configuration

我也不太懂,简单来说是Java因为版本的问题 对于加密方法做了限制,看网上很多方法就是下载安全策略的包,然后修改下配置就行,但是对我们来说生产上机器太多不现实,最简单的方法是升级Java的版本
image.png

但是我们这说的也不是很正确,151以上的版本有的是默认无限制的,不需要修改配置,可以通过命令来查看该版本是否是被限制的,我查看了172,181版本都是没有问题,所以升级版本就完事了

  1. jrunscript -e 'exit (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") >= 256);'; if [ $? -eq 1 ]; then echo "JCE Unlimited OK"; else echo "JCE NOT Unlimited"; fi
  2. 无限制版本输出:JCE Unlimited OK
  3. 限制版本输出:JCE NOT Unlimited
  4. ========================================
  5. 无限制版本下载地址:JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download
  6. PS: ${JAVA_HOME}/jre/lib/security/java.security
  7. crypto.policy=unlimited
  8. 这行配置被注释掉时使用的时unlimited配置。后面的值对应${JAVA_HOME}/jre/lib/security/policy下面的目录。

参考文章
https://blog.51cto.com/u_15064656/3671134

https://blog.csdn.net/weixin_40816738/article/details/108164270?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-108164270-blog-105421433.pc_relevant_default&spm=1001.2101.3001.4242.2&utm_relevant_index=3