首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过spring自动配置在spring引导应用程序中使用加密密码进行数据库连接

通过spring自动配置在spring引导应用程序中使用加密密码进行数据库连接
EN

Stack Overflow用户
提问于 2019-06-13 11:19:29
回答 3查看 13.6K关注 0票数 7

使用spring自动配置尝试使用加密的数据库密码连接到数据库

我使用Spring自动配置连接到数据库。为此,我在属性文件中添加了以下属性:

代码语言:javascript
复制
spring.datasource.url=jdbc:oracle:thin:@ABCDE2D.com:1888:ABCDE2D1
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver

在我的dao类中,我有@Autowired的NamedParameterJdbcTemplate,并直接使用它从数据库中获取数据。

到现在为止,一切都很顺利。

现在我需要加密属性文件中的密码。为此,我做了以下工作:

  1. 在pom中增加了jasypt-spring-boot-starter
  2. 在属性文件中添加spring.datasource.password=ENC(NoIv2c+WQYF3LenN0tDYPA==)
  3. 在属性文件中添加jasypt.encryptor.password=key

现在我得到了以下错误:

代码语言:javascript
复制
Failed to bind properties under 'spring.datasource.password' to  
java.lang.String:
Reason: Failed to bind properties under 'spring.datasource.password' to   
java.lang.String
EN

回答 3

Stack Overflow用户

发布于 2020-02-29 05:58:47

我提供了一些基本指南如下。

为了使应用程序正常工作,您需要在属性文件中添加以下两个参数。这是假设您使用默认加密算法进行加密。如果您正在使用其他的,那么请确保相应地更改它。

jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator jasypt.encryptor.algorithm=PBEWithMD5AndDES

您可以参考更多细节https://nirmalbalasooriya.blogspot.com/2020/02/spring-boot-property-encryption-using.html

票数 14
EN

Stack Overflow用户

发布于 2020-11-11 00:43:54

在我的例子中,我给错了jasypt.encryptor.password。例如,下面给出的是我在application.properties中设置的属性:

代码语言:javascript
复制
jasypt.encryptor.password=abc

相反,abc,我在加密密码时,给了jasypt作为我的密钥,所以这个隐藏的密码是错误的。然后抛出这个错误。后来我意识到钥匙不对。然后给出正确的密钥我犯了个愚蠢的错误,但花了我4个小时。希望它能对其他人有用。

票数 2
EN

Stack Overflow用户

发布于 2021-05-26 13:40:38

如果您使用的是jasypt依赖项,请确保:

代码语言:javascript
复制
spring.datasource.password = Enc

代码语言:javascript
复制
jasypt.encryptor.password = key

其中Enc是加密密码,而 key 是您用来生成加密密码的密钥。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56579295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档