Druid数据库密码加密

末点 2019-12-30

背景

数据库密码直接写在配置中,对安全来说,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter。

druid版本为1.1.18。


 加密

1.项目中引入依赖

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

2.打开cmd命令窗口,进入druid的jar所在位置

Druid数据库密码加密

3.执行命令

java -cp druid-1.1.18.jar com.alibaba.druid.filter.config.ConfigTools 数据库密码 

Druid数据库密码加密

4.配置数据源,Druid数据源需要对数据库密码进行解密

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
     init-method="init" destroy-method="close">
     <property name="url" value="${jdbc.url}" />
     <property name="username" value="${jdbc.username}" />
     <property name="password" value="${jdbc.password}" />
     <property name="filters" value="config" />
     <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.publickey}" />
</bean>

5.application.properties配置数据库连接属性

# Spring Datasource Settingsjdbc.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
jdbc.username=root
jdbc.password=fy5sM+1Vo/2NZAN9RxmLVIsq/44Yil69T3Ut371h5AvGvnIUSyf6A7TKrrtkaUMa5Yp/VH+kwic+PF3UhWODyA==
jdbc.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI7sCmm9z5XNGH4tBYtD01Zz3gbdmcNCkrN5RBkV3iBNiHkyBYeQ/ew3Ca2576TvTlxW+iDt1qZSKGZdqEb0cg8CAwEAAQ==
# pool settings
jdbc.pool.init=1
jdbc.pool.minIdle=3
jdbc.pool.maxActive=20
jdbc.testSql=SELECT ‘x‘

相关推荐