druid加密 springboot application.properties配置文件数据库密码加密

目录

场景说明:基于应用服务器部署的要求,需要对部署应用工程涉及数据库密码的配置文件,进行加密或者密文设置;明文设置有安全风险,若是应用服务器被攻克,假如你的数据库密码是密文,那么你的数据库的所有数据也会被爬光的,若是涉及敏感数据,后果不堪设想。

1、引入druid包

2、找到druid.jar

3、加密密文和生成公钥、私钥(一气呵成)

4、配置数据库连接文件

5、测试验证


场景说明:基于应用服务器部署的要求,需要对部署应用工程涉及数据库密码的配置文件,进行加密或者密文设置;明文设置有安全风险,若是应用服务器被攻克,假如你的数据库密码是密文,那么你的数据库的所有数据也会被爬光的,若是涉及敏感数据,后果不堪设想。

 

1、引入druid包

maven工程参考如下:

<dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid-spring-boot-starter</artifactId>
       <version>1.1.18</version>
</dependency>

2、找到druid.jar

本人使用的ECELIPSE工具,可以右键工程,查看属性。参照下图找到jar包位置

 

找到此目录,并打开你本机的DOS终端(嘿嘿的界面),并切换到JAR目录,如下所示:

3、加密密文和生成公钥、私钥(一气呵成)

然后输入以下命令

java -cp druid-1.1.18.jar com.alibaba.druid.filter.config.ConfigTools wwwwww > encode.txt

意思是将密码明文wwwwww进行加密,将结果输出到文件encode.txt(自动创建此文件)

执行后,当前目录会出现文件:encode.txt

 

4、配置数据库连接文件

有了这两项法宝,就可以配置我们的配置文件了,以下配置是mysql的配置

application.properties配置举例:


# 数据源配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# 主库数据源
spring.datasource.druid.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.druid.username=test
spring.datasource.druid.password=AmVPLGYSVTOf5P3f7qb6G+4jsed+DUrS6qlhwRH3Ee6d3/pYlQy25B5ElIUJiJLagNJnWA36FttCIok0FPVy2Q==
spring.datasource.druid.connect-properties.config.decrypt=true
spring.datasource.druid.connect-properties.config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL/xbyiyIbq2r4oHWdkKMH5Gp5HNEl3je/amTco7yMFVZtanMOMvH5NirM08qayfbdHHTENCmd4zNqiThOL7DbkCAwEAAQ==

# 初始连接数
spring.datasource.druid.initialSize=5
# 最小连接池数量
spring.datasource.druid.minIdle=10
# 最大连接池数量
spring.datasource.druid.maxActive=200
# 配置获取连接等待超时的时间
spring.datasource.druid.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.druid.minEvictableIdleTimeMillis=300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
spring.datasource.druid.maxEvictableIdleTimeMillis=900000
# 配置检测连接是否有效
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.stat-view-servlet.enabled=true
# 设置白名单,不填则允许所有访问
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.url-pattern=/monitor/druid/*
spring.datasource.druid.filter.stat.enabled=true
# 慢SQL记录
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000
spring.datasource.druid.filter.stat.merge-sql=true
spring.datasource.druid.filter.wall.config.multi-statement-allow=true
#数据库过滤器
spring.datasource.druid.filter.config.enabled=true

非常关键的地方来了:

这个没配置,就没法通过过滤器解析配置的密文了
spring.datasource.druid.filter.config.enabled=true

spring.datasource.druid.connect-properties.config.decrypt.key

复制encode.txt中的pubicKey的值

spring.datasource.druid.password

复制encode.txt中的password的值

5、测试验证

若是不行,可查看是否复制的值有漏掉的,或者decrypt.key的值错误的设置为privateKey私钥了? 重复检查,如果不行,请重新来过。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值