** 把数据库用户名和密码写在配置文件中,不安全,这里用阿里的druid数据库连接池对指定配置属性进行自定义加解**
这里对springMVC 框架的项目做简单介绍,下边简单介绍下配置:
* 第一步*:如果使用了maven管理项目,可以在pom.xml文件里引入相关jar 包。
 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.26</version></dependency>
*第二步*:项目中增加一个properties配置文件 db.properties,用于放置数据库配置信息

connection.driverClass=com.mysql.jdbc.Driver
connection.url=jdbc:mysql://localhost:3306/druid?useUnicode=true&characterEncoding=UTF-8
#数据库连接用户名
connection.username=V9Wll1KTZLXGo2x8pf2HFKtxrj6xa78I8CBmZntcEKRHoXVrphs1co8lCFJl3ByTkT2c9rfSZa3VzbsyCPHeuw==
#数据库连接密码
connection.password=QglxhqQ1mRyCUKkTrCO9Q84OGiweSCf0le4cyYKJeRLU2PkqXmBDlbso0qmamnvMot2lv4+rbFA2UUN1oxj8yw==#配置初始化大小、最小、最大
druid.initialSize=10
#最小连接池数量
druid.minIdle=10
#最大连接池数量
druid.maxActive=50
druid.validationQuery=SELECT 'x'
#检测连接是否有效的超时时间,单位:秒。底层调用jdbc Statement对象的void setQueryTimeout(int seconds)方法
#配置监控统计拦截的filters
druid.filters=config,stat,slf4j
#使用全局监控
druid.useGlobalDataSourceStat=true

*第三步*:配置数据库连接池,在applicationContext.xml文件里加入数据库连接池。

<bean id="xxxDataSource"  name="xxxDataSource"  class="com.xxx.utils.DecryptDruidSource" init-method="init" destroy-method="close"><property name="driverClassName" value="${connection.driverClass}"/><property name="url" value="${connection.url}" /><property name="username" value="${connection.username}" /><property name="password" value="${connection.password}" /><property name="initialSize" value="${druid.initialSize}" /><property name="minIdle" value="${druid.minIdle}" /><property name="maxActive" value="${druid.maxActive}" /><property name="maxWait" value="${druid.maxWait}" /><property name="validationQuery" value="${druid.validationQuery}" /><property name="connectionProperties" value="${druid.connectionProperties}" /><!-- 配置监控统计拦截的filters --><property name="filters" value="${druid.filters}" /></bean>
**注意**:*这里有一个自定义的类DecryptDruidSource*
*第四步*: 自定义DecryptDruidSource类,对指定属性参数进行加解密处理,密码是自带加密的不需要处理
public class DecryptDruidSource extends DruidDataSource{/*** */private static final long serialVersionUID = -395779072965051202L;@Overridepublic void setUsername(String username) {try {username = ConfigTools.decrypt(username);//alibaba decrypt} catch (Exception e) {e.printStackTrace();}super.setUsername(username);}
}

这里也可以对其他属性加密,重写方法即可,比如url。
*第五步*:将明文用户名和密码转换为密文。
写个main方法进行测试加解密

public class DecryptDruid {public static void main(String[] args) {try {testEncrypt();testDecrypt();} catch (Exception e) {e.printStackTrace();}}/*** 对文字进行解密*/public static void testDecrypt() throws Exception {//解密String word="V9Wll1KTZLXGo2x8pf2HFKtxrj6xa78I8CBmZntcEKRHoXVrphs1co8lCFJl3ByTkT2c9rfSZa3VzbsyCPHeuw==";String decryptword = ConfigTools.decrypt(word);System.out.println(decryptword);}/*** 文字进行加密*/public static void testEncrypt() throws Exception{//加密String context ="username";String password ="123456";String encryptword = ConfigTools.encrypt(context);String password2 = ConfigTools.encrypt(password);System.out.println(encryptword);System.out.println(password2);}
}

这里得到的密文放入对应的配置文件db.properties 中就可以了。

*另外*:第五步秘钥现在用了jar 包里自带的publicKey,当然也可以配置自定义的publicKey
在控制台运行  java -cp D:/druid-1.0.27.jar com.alibaba.druid.filter.config.ConfigTools password ,会得到publickey 和password 放入配置文件 db.properties 中就可以了,但这种方式好像每次只能加密一个,再执行一次,之前的publickey就会变,解密不了上一个。

Druid对数据库配置进行加解密相关推荐

  1. boot数据加解密 spring_springboot项目使用druid对数据库密码的加解密

    作为一名有经验的开发人员,是不习惯将明文直接放在代码中,总觉得有隐患.今天搭建了一个springboot项目,需要集成数据库,调取数据. 在配置 datasource的时候,想要将密码改为密文,连接数 ...

  2. 利用SQLCipher加解密数据库(包括加解密已有的数据库)

    1.介绍     SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全 ...

  3. ssl mybatis实现数据库字段的加解密

    AES_ENCRYPT(#{guankongrenshenfenzhenghao},'hotkey')#{guankongrenshenfenzhenghao} 表示要存的内容 'hotkey' 这字 ...

  4. Spring boot 配置文件明文密码加解密

    jasypt 是一个简单易用的加密Java库,使用起来非常简单. 现在我们系统中的一些配置文件中密码还是暴露的,打开配置文件,就能看到密码,如图: 这情况我们如果不想让别人看到数据库密码,所以就要对数 ...

  5. 加解密程序之中间件思想的运用

    近期在工作中遇到一个加解密的集成需求,过程算得上是一波三折,在此记录以供思路分享,并便于日后翻阅. 1.需求背景: 客户引入数据时上传的excel是加密文件,由于系统无法直接解析加密文件导致引入失败. ...

  6. Druid之——连接池自定义数据库密码加解密的实现

    转载请注明出处:https://blog.csdn.net/l1028386804/article/details/79920338 Druid是阿里巴巴开发的一款数据库连接池,它支持对数据库密码的加 ...

  7. Druid连接池自定义数据库密码加解密的实现

    Druid的功能 1.替换DBCP和C3P0.Druid提供了一个高效.功能强大.可扩展性好的数据库连接池. 2.可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能 ...

  8. Druid密码加解密

    目录 数据库密码加密: 1.配置jar包 2.生成密码 3.修改配置 数据库密码解密: 数据库密码加密: 1.配置jar包 <dependency><groupId>com.a ...

  9. boot数据加解密 spring_SpringBoot 集成 Jasypt 对数据库加密以及踩坑

    前言 密码安全是非常重要的,因此我们在代码中往往需要对密码进行加密,以此保证密码的安全 加依赖 <!-- jasypt --> <dependency><groupId& ...

最新文章

  1. 什么是AngularJS?它有哪些特性?
  2. java服务端监听_Java客户端正在监听WebSphere MQ服务器?
  3. CTreeCtrl标签的编辑
  4. 网盘们打打打起来了(doge)
  5. kibana智能检索发送多次_msearch —— 配置index pattern,同时设置时间段,就知道到底是在哪些索引里去查找数据了...
  6. [蓝桥杯][算法提高VIP]聪明的美食家-dp
  7. ipython 学习笔记 2 network graph--NetworkX
  8. python mockito arg_that_wqingxiao
  9. 未从创建控件的线程访问解决办法
  10. 佳缘男的计算机软件出差,交友我在世纪佳缘认识了一个男人,今年32岁,通信接近一个月,觉得 爱问知识人...
  11. 2的指数字节转与MB、GB换算关系
  12. Survey: A Survey on Image Tampering and Its Detection in Real-world Photos 图像仿冒
  13. windows10如何截长图
  14. hermite spline
  15. Linux获取ring0权限,Ring0和Ring3权限级
  16. CNZZ统计代码异步加载教程
  17. 通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(五)
  18. 嵌入式设备交叉编译perf性能分析工具
  19. linux下查看显卡和驱动版本
  20. D3.js中文版api-接口文档

热门文章

  1. 百度SEO,下拉框,关键词,搜索框,关键词排名。
  2. xboost分类预测 预测结果全部一致
  3. linux中忘记MySQL密码这么办?
  4. PowerUp攻击模块实战
  5. k8s动力节点的部署
  6. 树莓派3b安装系统noobs
  7. 配置Apache实现url转发
  8. 计算机考试字处理怎样加水印,一学即会!图片上如何添加文字水印
  9. java matcher函数_在Java正则表达式中使用Matcher.end()方法
  10. 百度网盘分享出去文件不存在_百度网盘分享文件被取消了怎么办?找回被取消分享文件的方法...