使用durid的ConfigFilter对数据库密码加密

原文连接:http://blog.csdn.net/aixiaoyang168/article/details/49930513

-----------------------------------------------------------------------

对于大部分程序员来说,数据库的信息,如用户名,密码等信息一般都写到配置文件中,便于修改和维护,然而这对于运维安全来说确实一个很大的挑战,如果黑客进入到你的系统里面去,那这些数据库用户名和密码就一目了然,这个是很不安全的。Druid为此提供一种数据库密码加密的手段ConfigFilter,使用他加密数据库密码,即使别人拿到了数据库连接密码,破解这个密码也得稍稍花点时间了,也对咱们的网站安全性提高了一些。

好了,废话少说,配置一下也是很简单的啦!

第一步: 
执行druid的命令加密数据库密码 
命令: 
java -cp druid-0.2.23.jar com.alibaba.druid.filter.config.ConfigTools xxxxxx

举个栗子:

命令:
D:\>java -cp druid-1.0.15.jar com.alibaba.druid.filter.config.ConfigTools 123456
输出:
Biyu5YzU+6sxDRbmWEa3B2uUcImzDo0BuXjTlL505+/pTb+/0Oqd3ou1R6J8+9Fy3CYrM18nBDqf6wAaPgUGOg==
  • 1
  • 2
  • 3
  • 4

输出的结果就是加密后的密码啦!xxxxxx为你的数据库密码明文。

第二步: 
配置数据源,使用Druid配置数据源对数据库密码进行解密。

<!-- Druid JNDI DataSource for J2EE environments -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="url" value="${jdbcUrl}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="5" /><property name="minIdle" value="5" /><property name="maxActive" value="20" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="60000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="3000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="SELECT 'x' FROM DUAL" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!--打开PSCache,并且指定每个连接上PSCache的大小 ,Oracle,把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false--><!--<property name="poolPreparedStatements" value="true" />--><!--<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />--><!-- 开启Druid的监控统计功能 --><property name="filters" value="stat,config" /><!-- 开启数据库密码解密--><property name="connectionProperties" value="config.decrypt=true" />            
</bean>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

说明:这个数据源配置跟上一篇的配置大致相同,唯一的区别就是增加了开启数据库密码解密功能。name=”connectionProperties” value=”config.decrypt=true”,这个就是配置druid进行数据库密码解密。 
值得注意的是:property name=”filters” value=”stat,config”这里面可以配置多个filter,除了上一次监控统计的stat,这次解密我们需要添加config。

经过简单的配置,这样配置文件里面的密码加密之后,有可以连接到数据库啦!

当然,使用ConfigFilter解密密码,有三种方式配置: 
1) 可以在配置文件my.properties中指定config.decrypt=true 
2) 也可以在DruidDataSource的ConnectionProperties中指定config.decrypt=true 
3) 也可以在jvm启动参数中指定-Ddruid.config.decrypt=true

ConfigFilter不仅仅可以进行数据库加密,还可以支持配置文件从本地文件系统中读取,从远程http文件中读取配置操作,大家可以试试看!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

序(不知道是什么时候的模拟题)

序 【问题背景】 zhx 给他的妹子们排序。 【问题描述】 \(zhx\) 有 \(N\) 个妹子&#xff0c; 他对第 \(i\) 个妹子的好感度为\(a_i\), 且所有\(a_i\),两两不相等。 现在 \(N\) 个妹子随意站成一排&#xff0c; 他要将她们根据好感度从小到大排序。 他使用的是冒泡排序算法&…

html写用户导入,用户基本信息录入.html

&#xfeff;用户基本信息录入$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.…

adg oracle 架构_技术栈数据中心有了ADG架构就高枕无忧了?你还需要做这一步!...

技术栈数据中心有了ADG架构&#xff0c;就高枕无忧了&#xff1f;你还需要做这一步&#xff01;如果把数据中心建设比喻成西天取经&#xff0c;那旅途上的九九八十一难就是我们不得不躲闪、跨越、攻坚的堡垒。即日起&#xff0c;希嘉推出“技术栈”板块&#xff0c;集结数据治理…

String length must be a multiple of four.

今天在整理2013年的工作时的一个项目&#xff0c;修改了数据库连接&#xff0c;初始化数据库&#xff0c;部署运行报错&#xff0c;主要原因是阿里巴巴druid报错&#xff0c;导致DataSource初始化失败。 druid报错日志&#xff1a; Caused by: java.lang.IllegalArgumentExce…

论文笔记:Person Re-identification with Deep Similarity-Guided Graph Neural Network

Person Re-identification with Deep Similarity-Guided Graph Neural Network 2018-07-27 17:41:45 Paper&#xff1a; https://128.84.21.199/pdf/1807.09975.pdf 本文将 Graph Neural Network (GNN) 应用到 person re-ID 的任务中&#xff0c;用于 model 不同 prob-gallery …

CGLib动态代理原理及实现

原文连接&#xff1a;http://songbo-mail-126-com.iteye.com/blog/968792 ------------------------------------------------------------------------ JDK实现动态代理需要实现类通过接口定义业务方法&#xff0c;对于没有接口的类&#xff0c;如何实现动态代理呢&#xff…

微型计算机的硬件组成中ssd硬盘通常是指,2015年计算机一级msoffice选择题121道及答案...

31、通常&#xff0c;在微机中标明的P4或奔腾4是指( D )A、产品型号B、主频C、微机名称D、微处理器型号32、以平均无故障时间(MTBF)&#xff0c;用于描述计算机的( A )A、可靠性B、可维护性C、性能价格比D、以上答案都不对33、以平均修复时间(MTTR)&#xff0c;用于描述计算机的…

双曲函数奇偶性_基本初等函数之奇偶性(强基系列42)

基本初等函数之奇偶性(强基系列4-2)开卷有益初等函数是由幂函数(power function)、指数函数(exponential function)、对数函数(logarithmic function)、三角函数(trigonometric function)、反三角函数(inverse trigonometric function)与常数经过有限次的有理运算(加、减、乘、…

Caused by: Parent package is not defined: json-default - [unknown location]

原文连接&#xff1a;http://blog.csdn.net/bebested/article/details/52627890 ------------------------------------------------------------------------------------------- Unable to load configuration. - [unknown location] at com.opensymphony.xwork2.config.Co…

【window】git安装教程

相关链接&#xff1a;https://blog.csdn.net/nly19900820/article/details/73379854 作者&#xff1a;smile.轉角 QQ&#xff1a;493177502转载于:https://www.cnblogs.com/websmile/p/9384060.html

html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...

win7系统打开Word的时候&#xff0c;弹出提示“无法打开文件Normal.dotm,因为内容有错误”&#xff0c;为什么会出现错误提示呢&#xff1f;小编就按照错误提示寻找文件&#xff0c;最后发现是Word自动生成的模板Normal出错了&#xff0c;知道故障原因后&#xff0c;接下去教程…

超链接跳转到action使用哪个方法_管道疏通剂哪个牌子好 管道疏通机使用方法有哪些...

平时大家不用的水或者一些物品&#xff0c;在处理的时候应该都会倒到下水道之中&#xff0c;而下水道确实具备着这一种效果&#xff0c;但很多时候&#xff0c;下水道往往会因为口比较小&#xff0c;而被一些物品所堵塞&#xff0c;这样一来&#xff0c;影响上其实会非常大&…

linux学习-将seafile启动脚本设置为开机启动服务

有时候&#xff0c;我们安装的linux软件和程序不是通过yum安装&#xff0c;而是通过编译或者其他方式安装。有时需要将程序设置为服务&#xff0c;达到开机启动的目的。我在公有云的与服务器上搭建了seafile网盘&#xff0c;当我重启云服务器的时候&#xff0c;seafile的程序不…

物理借助传感器用计算机测速度,用打点计时器测速度教案_物理_教学设计_人教版...

第四节、实验&#xff1a;用打点计时器测速度西安中学&#xff1a;张卫岗邮编&#xff1a;710021【教材版本】人民教育出版社【设计理念】实验是物理学习的基础&#xff0c;通过自主探究、问题研究&#xff0c;结合速度概念的科学认识&#xff0c;体验科学研究与生活实际的联系…

Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlFmtTLV

原因&#xff1a; 1、缺包。如缺 standard-1.1.2.jar servlet-api-2.4.jar jstl-1.1.2.jar 2、包重复。最可能是 servlet-api-2.4.jar jsp-api-2.0.jar 与Tomcat lib 下的冲突。删掉 web-inf/lib下的

中文整合包_案例 | 美研市场营销和整合营销专业1620Fall 580+申请实例(含MS+PHD)...

关注“留学壹周刊”&#xff0c;回复专业名称&#xff0c;如“金融”&#xff0c;可以自由查询相关资料介绍本篇微信主要包括如下内容&#xff1a;580美研市场营销和整合营销专业16-20Fall申请实例&#xff0c;包括6个文件&#xff1a;1、MS项目申请实例2、PHD项目申请实例3、成…

关于HttpClient上传中文乱码的解决办法

使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息&#xff0c;但是&#xff0c;如果要上传中文的话&#xff0c;或还有中文名称的文件会出现乱码的问题&#xff0c;解决办法其实很简单&#xff1a; 第一步&#xff1a;设置MultipartEntityBuilder的编…

写在开头

今年项目组任务超量完成&#xff0c;到过年都可以轻松了。 今年开发了一个基于dubbo的分布式系统&#xff0c;高并发&#xff0c;大数据&#xff0c;数据分析建模。目前热门的都用上了。 近期决定把我2013年时一个单体应用架构的项目改造成基于dubbo的分布式系统。 该项目是…

学计算机的让修电脑搞笑段子精选,搞笑段子:阿姨,我是真的就来给他们修电脑的!...

搞笑段子&#xff1a;阿姨&#xff0c;我是真的就来给他们修电脑的修电脑在上大学的时间&#xff0c;经常用修电脑的名号进入到女生宿舍之中&#xff0c;当时的宿管阿姨人特别好&#xff0c;稍微的问一下就让我进去了。有一天&#xff0c;我刚要进去的时间&#xff0c;她拉着我…

react table里跳转页面_react路由配置基础篇:react-router4.0及以上

随着react路由组件的不断升级&#xff0c;react-router4以下的版本和4以上的版本配置还是有一定的区别&#xff0c;这里就不累赘陈述了&#xff0c;笔者分享下使用react-router4.0以上版本的经验。1、安装react-router-domnpm install react-router-dom --save2、基本配置&…