1. 用 Druid 提供的方法加密密码,控制台会输出三对值,分别是:privateKey、publicKey、password

public static void main(String[] args) {String password = "password";try {ConfigTools.main(new String[]{password});} catch (Exception e) {e.printStackTrace();}
}

2. 将 application-druid.yml 中的 druid.master.password 替换成加密后的 password

3. application-druid.yml 的 druid 直接子级添加配置项,config.decrypt.key 填写生成的 publicKey

filters:config:# 数据库密码是否加密开关,false 表示密码使用明文enabled: true
connect-properties:config.decrypt: trueconfig.decrypt.key:

4. 修改 com.ruoyi.framework.config.properties.DruidProperties,添加以下代码

@Value("${spring.datasource.druid.filters.config.enabled}")
private boolean configFilterEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt}")
private String decryptEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt.key}")
private String decryptKey;// dataSource 方法中添加
if (configFilterEnabled) {try {/* 启用数据库密码解密 */datasource.setFilters("config");Properties properties = new Properties();properties.put("config.decrypt", decryptEnabled);properties.put("config.decrypt.key", decryptKey);datasource.setConnectProperties(properties);} catch (Exception exception) {exception.printStackTrace();}
}

以下是 DruidProperties 的完整代码

package com.ruoyi.framework.config.properties;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;import java.util.Properties;/*** druid 配置属性* * @author ruoyi*/
@Configuration
public class DruidProperties
{@Value("${spring.datasource.druid.initialSize}")private int initialSize;@Value("${spring.datasource.druid.minIdle}")private int minIdle;@Value("${spring.datasource.druid.maxActive}")private int maxActive;@Value("${spring.datasource.druid.maxWait}")private int maxWait;@Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")private int timeBetweenEvictionRunsMillis;@Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")private int minEvictableIdleTimeMillis;@Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")private int maxEvictableIdleTimeMillis;@Value("${spring.datasource.druid.validationQuery}")private String validationQuery;@Value("${spring.datasource.druid.testWhileIdle}")private boolean testWhileIdle;@Value("${spring.datasource.druid.testOnBorrow}")private boolean testOnBorrow;@Value("${spring.datasource.druid.testOnReturn}")private boolean testOnReturn;@Value("${spring.datasource.druid.filters.config.enabled}")private boolean configFilterEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt}")private String decryptEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt.key}")private String decryptKey;public DruidDataSource dataSource(DruidDataSource datasource){/** 配置初始化大小、最小、最大 */datasource.setInitialSize(initialSize);datasource.setMaxActive(maxActive);datasource.setMinIdle(minIdle);/** 配置获取连接等待超时的时间 */datasource.setMaxWait(maxWait);/** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);/** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);/*** 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。*/datasource.setValidationQuery(validationQuery);/** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */datasource.setTestWhileIdle(testWhileIdle);/** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */datasource.setTestOnBorrow(testOnBorrow);/** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */datasource.setTestOnReturn(testOnReturn);if (configFilterEnabled) {try {/* 启用数据库密码解密 */datasource.setFilters("config");Properties properties = new Properties();properties.put("config.decrypt", decryptEnabled);properties.put("config.decrypt.key", decryptKey);datasource.setConnectProperties(properties);} catch (Exception exception) {exception.printStackTrace();}}return datasource;}
}

若依框架数据库密码加密相关推荐

  1. springboot+druid+dynamic-datasource+mysql数据库密码加密

    背景 生产环境中, 希望将数据库密码加密, 甚至用户名加密.druid自带了数据库密码加密功能. springboot+druid-starter实现密码加密 获取公钥和加密密码.这里使用druid- ...

  2. java配置文件中数据库密码加密

    最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...

  3. SSM项目的数据库密码加密方案

    项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...

  4. druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码

    在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如 ...

  5. druid连接池配置数据库密码加密

    druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件.远程服务器等三种地方,这里只讲第一种方法. 1.密码加密:cd到druid包所在文件夹打开命令行,输入 java -cp dr ...

  6. SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt

    使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...

  7. 使用durid的ConfigFilter对数据库密码加密

    原文连接:http://blog.csdn.net/aixiaoyang168/article/details/49930513 ----------------------------------- ...

  8. mysql数据库druid密码加密_Druid数据库密码加密

    背景 数据库密码直接写在配置中,对安全来说,是一个很大的挑战.Druid为此提供一种数据库密码加密的手段ConfigFilter. druid版本为1.1.18. 加密 1.项目中引入依赖 com.a ...

  9. TOMCAT 连接池数据库密码加密方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 原文来自 ...

  10. 集成druid实现数据库密码加密功能

    数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战.可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter. 目录 1.执行命令加密数据库密码 2.配置数据源,提示Drui ...

最新文章

  1. elementui 隐藏输入框_elementui select下拉框输入完全匹配值则下拉隐藏
  2. vim 设置标签等操作
  3. JavaScript中子类调用父类方法的实现
  4. Linux 市场估值将超 70 亿美元,主要原因是安全与开源需求
  5. UVA11005 Cheapest Base【数学】
  6. KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
  7. Ubuntu18.04 32位下载
  8. 华为云devops认证考试课堂笔记4
  9. 独家首发强大的个性生成工具箱微信小程序源码,超多功能的合成
  10. 推荐一个项目管理工具:TAPD
  11. github搭建php,在github规范开发以及持续构建php项目
  12. flink 部署模式和运行时架构(会话模式、单作业模式、应用模式,JobManager、TaskManager,YARN 模式部署以及运行时架构)
  13. BetterScroll 2.0网络数据过慢,不能滚动问题
  14. Spring Boot2 系列教程(三十三)整合 Spring Security
  15. ENE轨道线的选股公式
  16. 头歌 共享单车大数据项目数据分析
  17. Spring Boot DAY03 配置文件的注入
  18. IBinder中linkToDeath的介绍
  19. ARM linux 的原子操作分析
  20. JVM之类的加载过程(三):初始化——>Initialization

热门文章

  1. 解决2种jni加载错误
  2. Java常用类(三):FileUtils类
  3. asp.net网页版斗地主 已提供下载(开源) 测试版
  4. IOS开发之——屏幕适配-AutoLayout代码实现(03)
  5. Axure RP9 安装
  6. 【视频格式】webm用什么播放
  7. idea中 Java xml注释缩进问题 解决方案
  8. 调试工具之modscan使用介绍
  9. 非合作博弈篇——纳什均衡(Nash Equilibrium)
  10. python爬虫实例