springboot 整合druid数据库密码加密

springboot 整合druid数据库密码加密

1.依赖引入

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

2.密码加密处理

public static void main(String[] args) throws Exception {
        String password = "Aq6vD!puWbk";
        System.out.println("明文密码: " + password);
        String[] keyPair = ConfigTools.genKeyPair(512);
        //私钥
        String privateKey = keyPair[0];
        //公钥
        String publicKey = keyPair[1];
        //用私钥加密后的密文
        password = ConfigTools.encrypt(privateKey, password);
 
        System.out.println("privateKey:" + privateKey);
        System.out.println("publicKey:" + publicKey);
 
        System.out.println("password:" + password);
 
        String decryptPassword = ConfigTools.decrypt(publicKey, password);
        System.out.println("解密后:" + decryptPassword);
}

3.yml配置文件修改
connectionProperties需要注意,其他版本有connection-properties和connect-properties,注意区分

datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    # 特别注意:java 9以后需要将com.mysql.jdbc.Driver  改为  com.mysql.cj.jdbc.Driver即可
    # 否则报错:Loading class `com.mysql.jdbc.Driver'. This is deprecated.
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      #基本属性
      url: jdbc:mysql://1******:3306/**?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
      username: admin
      password: Qh0VAjlS/LVbsAFSAFsdf24jJ7rggMNsnvJex3x1mkUKxPd2bofuAR6DtjCV20M4n2DWc5SLZmkzgjvG3Elx1g==
      #此处需要注意,其他版本有connection-properties和connect-properties,注意区分
      connectionProperties: config.decrypt=true;config.decrypt.key=${publicKey};
      filter:
        config:
          enabled: true # 启动ConfigFilter
      #配置初始化大小/最小/最大[仅用于测试,生产环境需要修改]
      initial-size: 5
      min-idle: 5
      max-active: 20
      #获取连接等待超时时间
      max-wait: 60000
      #间隔多久进行一次检测,检测需要关闭的空闲连接
      time-between-eviction-runs-millis: 10000
      #一个连接在池中最小生存的时间
      min-evictable-idle-time-millis: 300000
      #指定获取连接时连接校验的sql查询语句
      validation-query: SELECT 'x'
      #验证连接的有效性
      test-while-idle: true
      #获取连接时候验证,会影响性能(不建议true)
      test-on-borrow: false
      #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
publicKey: MFwwDQYJKoZIhafwqfDSAwAwSAJBAIG3LgXwadfgferwbWdkGNDzgrjfSWfrBjJ2X+m9lajH7yGPeE/vLs4hdtr1RCITBKJeevZpwZ0DBLctVS6Dc0CAwEAAQ==

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值