druid连接池加密解密

数据库密码直接写在配置中,不安全,所以不使用明文,Druid提供一种数据库密码加密的手段ConfigFilter.
首先进入到jar包路径中

然后cmd
方法一:
java -cp druid-1.1.3.jar com.alibaba.druid.filter.config.ConfigTools 密码
密码 就是你自己数据库的密码,会直接把密钥打印在窗口

方法二:
java -cp druid-1.1.3.jar com.alibaba.druid.filter.config.ConfigTools 密码 > pwd.txt
生成一个文件在当前目录下

加密完成后就可以配置, app.properties 配置如下:

datasource.default.driverClassName=com.mysql.jdbc.Driver
datasource.default.url=jdbc:mysql://localhost:3306/answer?characterEncoding=utf8&useUnicode=true&useSSL=false&allowMultiQueries=true
datasource.default.user=root
datasource.default.password=UElScLKInsMG0ERfax2j640qhDtYIWfBCgnx9iGK9IgIi6KcixiqP9V+6Lzblai5hWQrpWitkfnadFVXIky5Og==
datasource.default.druid.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAINkd4H+vgeeybD3QMBalS+V3WDxuUJ923zqj2SXGvLDCEzbbKhBXk9SXarmxCPUbUEF2i85+WZa4iDbFRnLOycCAwEAAQ==

有加密自然有解密,applicationContext.xml配置如下:

点击查看代码
   <bean name="defaultDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="${datasource.default.driverClassName}"/>
        <property name="url" value="${datasource.default.url}"/>
        <property name="username" value="${datasource.default.user}"/>
        <property name="password" value="${datasource.default.password}"/>

        <property name="filters" value="config,slf4j,stat,wall"/>
        <property name="useGlobalDataSourceStat" value="true"/>
        <property name="connectionProperties"
                  value="config.decrypt=true;config.decrypt.key=${datasource.default.druid.publicKey};druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000"/>

posted @ 2022-04-19 23:05  Sappy  阅读(567)  评论(0编辑  收藏  举报