原创

spring mvc 集成Druid 加密解密数据库密码

由于同一项目很多厂家竞争在做,全部部署在同一服务器上给甲方演示,领导觉得像数据库的账号秘密在properties文件中裸露不安全,所以提出将项目的密码加密。
本项目是很老维护的项目,用到spring mvc框架,Druid 连接池。
第一步:获取加密后的密码
找到项目里的Druid的jar的位置,我此处用到的是druid-1.1.2.jar,然后cmd,输入 java -cp druid-1.1.2.jar com.alibaba.druid.filter.config.ConfigTools tkyths
tkyths为我要加密的密码
cmd返回的如下图

将配置文件中的密码改成返回的password,增加publicKey为返回的publicKey

jdbc_password=K5c3KGupuCjWYbEDmSeVH6lzDUv+i3hVmIXpbU1J150Mc+h3IRbX0dqqcyT1QZw6DX8UdY+QM/mvAIWVcs4ndg==
publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAK+NqbGKlaoqx2NxSonudA1wHcFG6BVyBlMxmFMGcnAd/dOD2SvEu9n48tDaW5D3X0+KfO2RGcoUVZmicRx3MtUCAwEAAQ==

第二步:配置dataSource中的解密
找到xml,找到位置

<bean name="dataSource" 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="mergeStat,config" />
        <property name="connectionProperties" value="druid.stat.slowSqlMillis=100;config.decrypt=true;config.decrypt.key=${publicKey}" />
</bean>

以下两行是解密,必须有,若你的filters里配置了其他东西,value中可以用,隔开,添加多个

    这样就大功告成了。
正文到此结束
本文目录