魔法王座多久合区:连接池数据库密码加密
来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 11:14:04
hibernate使用连接池并且处理数据库密码加密
数据库, hibernate, 密码 明文密码太不安全使用加密吧!~在使用 hibernate框架时怎么来处理密码呢?
首先我们要找一个切入点 就是 连接池在什么时间读的配置 这个时候我们解密在给他
看hibernate配置
org.hibernate.connection.C3P0ConnectionProvider
这就是hibernate把连接交给专门的连接池类来负责
我们就在这里动手脚
name.ixr.connection.C3P0ConnectionProvider
这里换成我们自己的类,当然这个类要有原有类的功能
这里我们想到一个方法使用继承
-
- package name.ixr.connection;
- import java.util.Properties;
- import org.hibernate.cfg.Environment;
- import name.ixr.util.EncUtil;
- /**
- * 自定义C3P0处理
- * 2009-10-10
- * @author IXR
- * @version 1.0
- */
- public class C3P0ConnectionProvider extends org.hibernate.connection.C3P0ConnectionProvider {
- }
- }
类有了怎么处理呢? 还有原有的类有什么方法?
需要下载 hibernate code查看 我看了他的方法 大概了解了下
知道
hibernate读取完配置文件把配置文件对象交给了configure这个方法
然后重构这个方法,实现原来的太麻烦,就算复制代码太多我们只处理中间的一个环节所以没有必要完全重写,我们用多态吧,都继承了也是为什么上边我用继承,看我怎么写的
- /**
- * 修改读取配置文件的业务
- * 这里主要为了解密密码
- */
- public void configure(Properties props){
- //获取配置密码
- String password=props.getProperty(Environment.PASS);
- //密码解
- password=EncUtil.encToString(password);
- //处理密码
- props.setProperty(Environment.PASS, password);
- //交给父类处理
- super.configure(props);
- }
这样密码就解密重新设置了 然后交给父类来实现原有应该实现的功能呵呵!~
处理完毕EncUtil就是我加密解密类!~ 你们可以用自己的加密类!~
如果在Spring里,上述方法是不行的。因为Spring直接把用户名密码给了datasource。hibernate的属性不能生效
下面是一种便通的方法。需要自己实现一个Configurer类
public class MyConfigurer extends PropertyPlaceholderConfigurer
{
@Override
protected void processProperties(
ConfigurableListableBeanFactory beanFactory, Properties props)
throws BeansException {
System.out.println("MyConfigurer!");
String password = props.getProperty("hibernate.connection.password");
if (password != null && password.length() > 15) {
props.setProperty("hibernate.connection.password", EncryptUtil
.decrypt(password));
System.out.println("MyConfigurer done!");
}
super.processProperties(beanFactory, props);
}
}
连接池数据库密码加密
用户注册时 密码录入数据库前加密MD5加密
加密Access数据库
连接缓冲池提高数据库性能
【zh】彻底解决VB6~VB2005中连接ACCESS数据库(及带密码)问题
net 连接Access数据库
VBA连接数据库1
Oracle连接远程数据库
JAVA如何连接数据库
ASP连接SQL数据库
Java连接Oracle数据库
JAVA连接各种数据库
忘记加密密码
如何为密码加密?
学术数据库 账号 密码
JDBC连接各种数据库方法
VBA连接数据库 - ExcelVBA - 凡心
转载:ADO连接SQL数据库
Oracle sqlplus远程连接数据库
JDBC连接各种数据库方法
连接各种数据库方式速查表
ADO Connection对象连接数据库
利用ASP连接各种数据库
如何设置开机自动连接加密无线网络