springboot druid数据库密码加密

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

springboot druid数据库密码加密
springboot druid数据库密码加密
其中: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);

    }
}

上一篇:数据挖掘算法(一)C4.5


下一篇:20-Valid Parentheses