jasypt 解密失败: Failed to bind properties under ‘spring.datasource.password‘ to java.lang.String

一、问题描述

项目使用jasypt进行加解密,配置中心的mysql密码值使用ENCRYPT()加密,如下所示:
在这里插入图片描述
但是项目启动时报解密错误:

Failed to bind properties under 'spring.datasource.password' to java.lang.String

使用版本:
jasypt-spring-boot-starter:3.0.4
spring-boot-starter:2.7.18

二、原因

我使用的是jdk1.8.0版本,其中jdk1.8.0又细分了多个版本,jasypt加解密需要要求jdk1.8.0u161以上的版本,但是我的jdk版本是jdk1.8.0u151 低于jdk1.8.0u161,所以我决定改用更高级的jdk版本

三、解决

3.1 更换高版本的jdk

准备更换jdk1.8.0u381版本

3.1.1 下载

jdk下载地址:
链接: JDK 8u211 and later
链接: JDK 8u202 and earlier

在这里插入图片描述

3.1.2 安装

安装jdk步骤略过
新安装的jdk路径:D:\softInstall\jdk1.8u381
jre路径:D:\softInstall\jre1.8u381

3.1.3 配置环境变量切换jdk

因为我本地已经安装了jdk18.0u151版本,现在新安装了一个jdk18.0u381版本,需要切换到新版本。

参考文章:
链接: https://blog.csdn.net/qq_42109746/article/details/118598334

3.1.3.1 新建系统变量

新建一个系统变量JAVA_HOME_1.8_381,变量值指向新jdk安装路径D:\softInstall\jdk1.8u381
在这里插入图片描述

3.1.3.2 编辑JAVA_HOME变量

编辑JAVA_HOME变量,变量值引用刚才新增的系统变量JAVA_HOME_1.8_381
在这里插入图片描述
修改后效果:
在这里插入图片描述

3.1.3.3 修改java运行时环境

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.1.3.4 删除运行程序

删除C:\Program Files (x86)\Common Files\Oracle\Java\javapath_target_12456796目录下的与java相关的运行程序
在这里插入图片描述

3.1.3.5 修改注册表

从注册表(运行regedit)中删除jdk的默认启动的版本。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoftJava Development KitCurrentVersion项的值和Java Runtime EnvironmentCurrentVersion项的值,将这两项的值都设置为空即可
在这里插入图片描述
在这里插入图片描述

3.1.3.6 验证

java -version查看版本:
在这里插入图片描述
看到是最新的表示修改成功

3.1.3.7 idea修改jdk

在这里插入图片描述
在这里插入图片描述

3.2 其他方式

可以参考一下文章,开启安全策略:
参考文章:链接: https://www.jianshu.com/p/7eba0fc033d8

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是说缺少了必要的加密配置属性 jasypt.encryptor.password。这个属性是用来指定加密解密密码的,如果没有设置或者设置不正确,就会导致加密解密失败。需要检查配置文件中是否正确设置了这个属性。 ### 回答2: required encryption configuration property missing: jasypt.encryptor.password 是一个错误提示,通常出现在使用Jasypt加密框架时没有正确配置加密密码的情况下。Jasypt是一个流行的Java加密框架,用于实现数据加密,通常用于保护应用程序中的敏感信息,如数据库密码,API密钥等等。 当应用程序需要使用Jasypt加密框架时,需要在应用程序的配置文件中添加Jasypt加密器的配置属性,并设置加密密码。如果加密密码未设置或不正确,就会出现上述错误。 为解决这个问题,需要在应用程序的配置文件中添加以下配置属性: jasypt.encryptor.password=your_password 其中,your_password需要替换为你自己设置的加密密码。这样就可以解决required encryption configuration property missing: jasypt.encryptor.password错误。 除了配置加密密码,还可以在配置文件中设置其他的加密属性,如加密算法、密钥长度等等。如果需要更高级的加密配置,可以参考Jasypt官方文档,了解更多详细信息。 总之,required encryption configuration property missing: jasypt.encryptor.password错误提示表明应用程序Jasypt加密框架的加密密码没有正确配置。通过在配置文件中添加正确的加密密码,就可以解决这个问题,保护应用程序中的敏感信息。 ### 回答3: “required encryption configuration property missing: jasypt.encryptor.password”是一个常见的错误信息,在使用jasypt对应用程序进行加密时出现。这个错误信息提示我们,在进行加密时需要设置加密密码,而我们并没有设置密码Jasypt是一个Java库,用于对应用程序的敏感信息进行加密。这些敏感信息包括:数据库密码、API密钥等。Jasypt对这些信息进行加密可以避免这些信息被恶意的攻击者获取到。 在使用Jasypt时,我们需要设置一个加密密码来对敏感信息进行加密。这个加密密码必须是强密码,不能被轻易地猜测到。同时,加密密码必须保密,只能被授权的人员知晓。 当我们在使用Jasypt时,如果没有设置加密密码,就会出现“required encryption configuration property missing: jasypt.encryptor.password”错误信息。这个错误信息提示我们,我们需要设置加密密码。 那么怎样设置加密密码呢?首先,在应用程序的配置文件中添加以下内容: jasypt.encryptor.password=your_password 将“your_password”替换为你自己的密码即可。Jasypt会自动读取这个配置属性,使用你设置的密码来对敏感信息进行加密。 总结来说,当在使用Jasypt加密应用程序的敏感信息时,一定要设置一个强密码来保证信息的安全性。如果忘记设置密码,就会出现“required encryption configuration property missing: jasypt.encryptor.password”错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值