springboot druid数据库密码加密
pom.xml引入jar
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.14</version> </dependency>
生成加密密码
输入命令
java -cp D:\Repositories\ricet\com\alibaba\druid\1.1.14\druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools 123456
其中:publicKey 为公钥 , password为加密后密码,privateKey为私钥
配置数据库文件
# 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # 主库数据源 master: url: jdbc:mysql://dbmast.confedu.com:3306/da_edu_springboss?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: D/PR8jte+cXJVj74bavRpkqWbH/d1f/NlYliAyTafXDk5f8qKW7ITPdXskJ8Y3wz8zIM4on3zw+rCXD+C02KFQ== connect-properties: config.decrypt: true config.decrypt.key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIeliL/0EAtp/R9ow+LXx59I4PpWjlYCG6jyf7SAoagdscRCBSi916x9Vg6zbOMKWH8ZtvdNE54Lj8xm1T2E/yECAwEAAQ== # 从库数据源 slave: # 从数据源开关/默认关闭 enabled: false url: username: password: # 初始连接数 initialSize: 5 # 最小连接池数量 minIdle: 10 # 最大连接池数量 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一个连接在池中最大生存的时间,单位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置检测连接是否有效 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置白名单,不填则允许所有访问 allow: url-pattern: /monitor/druid/* filter: stat: enabled: true # 慢SQL记录 log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true #数据库过滤器 config: enabled: true
工具类
package com.ruoyi.common.utils; import com.alibaba.druid.filter.config.ConfigTools; /** * @author: dongao * @create: 2019/7/22 * 数据库密码加密工具类 */ public class DataSourcePasswordUtils { /** * 加密 * @param cipherText * @return * @throws Exception */ public static String encrypt(String cipherText) throws Exception { String encrypt = ConfigTools.encrypt(cipherText); return encrypt; } /** * 解密 * @param cipherText * @return * @throws Exception */ public static String decrypt(String cipherText) throws Exception { String decrypt = ConfigTools.decrypt(cipherText); return decrypt; } public static void main(String[] args) throws Exception { String password = "123456"; String encrypt = encrypt(password); System.out.println(encrypt); String decrypt = decrypt(encrypt); System.out.println(decrypt); } }
文章来源: https://blog.csdn.net/csdn565973850/article/details/96997262