admin管理员组

文章数量:1578025

数据库密码加密

在生产环境中,直接在配置文件中暴露明文密码是一件非常危险的事情,出于两点考虑:对外,即使应用服务被入侵,数据库还是安全的;对内,生产环境的数据库密码理论上应该只有 dba 知道,但是代码都是在代码仓库中放着的,如果密码没有加密,每次发布前 dba 都需要手动修改配置文件后再进行打包编译。

 

首先,我们需要生成数据库密码的密文,需要在命令行中执行如下命令:

 

java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password

这里我们需要将生成的公钥 publicKey 和密码 password 加入配置文件中, application-decrypt.yml 如下:

 

代码清单:

 

spring:

  datasource:

    type: com.alibaba.druid.pool.DruidDataSource

    url: jdbc:mysql://192.168.0.128:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false

    username: root

    # 加密后密文,原密码为 123456

    password: Y464AerH8tabxQg5DlkUej6gQ64KY73ahgiPyaB0vguLBLjUEEkVu6VBueiXxcnMfVjh1Nbd+lJNUTnS1a3/xg==

    driverClassName: com.mysql.cj.jdbc.Driver

    druid:

      filter:

        config:

          enabled: true

      connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIddoZ2mbjHu+mG+KYu6IEgBDDnGr5s+wZaPA2MXoqcXmUIZ6154MXNIAEOjkZaHy1rQ5uku2yO8Hw09hBcv9g8CAwEAAQ==

    # 剩余配置省略

本文标签: 密码数据库druid