当前位置:   article > 正文

利用druid对数据库密码进行加密_druid 数据库密码加密

druid 数据库密码加密

        针对目前越来越严的安全等级要求,我们在做产品研发和项目开发时,越来越需要注意安全问题,各种账号密码的在配置文件中明文存储就是一个很大的安全隐患。

        现针对数据库密码加密方面,利用druid进行数据库加密,实现项目配置文件中数据库密码密文存储,一定程度上保证了数据安全。

配置方法:

1、数据源配置[spring-mybatis.xml文件]

<!-- 配置数据源 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />


<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${jdbc.pool.init}" />
      <property name="minIdle" value="${jdbc.pool.minIdle}" /> 
      <property name="maxActive" value="${jdbc.pool.maxActive}" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />

<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />

<property name="validationQuery" value="${jdbc.validation.query}" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用)
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> -->
<!-- 配置监控统计拦截的filters -->
    <!--<property name="filters" value="stat" /> -->
<property name="filters" value="${jdbc.filters}" />
<property name="connectionProperties"
  value="${jdbc.connectionProperties}"/>

</bean>

2、数据库配置[ms.properties 一般为项目.properties配置文件]

#mysql
jdbc.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test_cmsnewdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true
jdbc.username=test_cmsnewdb
jdbc.password=DwVqlwsQ4DO3cNBYh3E4d+K0buSzX9ICy+wSKwODDcmXMy8XAGwymQivLoCBmAnI4wDRlN5uds25uFN9dsVACw==
jdbc.filters=stat,config
jdbc.connectionProperties=config.decrypt=true;config.decrypt.key=${jdbc.publicKey}
jdbc.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIv1DA8byv/lmR1LlR3cbl3BQ/WPKjRy+/o49QDrd3bUFQaXpzPil2dE9+h1MmXgje2URYfKwluOLVVGBnL01q0CAwEAAQ==


注:注意以上两个配置文件的标红配置项,把两个配置文件里面的标红配置项直接删掉就是明文存储数据库密码,也是可以正常使用的,但是要想实现加密,其实也只是需要加上jdbc.filtersjdbc.publicKey以及修改一下jdbc.password为加密之后的密文密码。

那么如何生成这个加密之后的密文密码和publicKey?

    其实还是比较简单的,直接利用阿里的druid.jar在本地生成一下就行了,具体操作步骤如下:

    1、CMD命令进入D:\dev\MavenRepos\Repo\com\alibaba\druid\1.0.22  该路径为本地仓库druid的jar包存放路径

    2、执行命令:java -cp .\druid-1.0.22.jar com.alibaba.druid.filter.config.ConfigTools root,其中root为待加密的明文密码

    3、取生成的publicKey和password到配置文件中即可


这样就可大功告成了!


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/844148
推荐阅读
相关标签
  

闽ICP备14008679号