利用druid对数据库密码进行加密 - Go语言中文社区

利用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:devMavenReposRepocomalibabadruid1.0.22  该路径为本地仓库druid的jar包存放路径

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

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


这样就可大功告成了!


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/feifuzeng/article/details/80798934
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 22:28:48
  • 阅读 ( 1502 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢