对Hibernate.cfg.xml中的用户名和密码进行加密码
如果在Hibernate.cfg.xml配置的用户名和密码配置如下:
<!--连接数据库的用户名-->
<propertyname="connection.username">sa</property>
<!--连接数据库的密码-->
<propertyname="connection.password">123</property>
那怎么感觉都有点不爽,因为如果这样数据库的用户名和密码一下就给别人知道了,有极大的安全隐患,特别是金融系统中,这样的配置更应该避免。
我这里采用对Hibernate的源码进行修改的方式(当然这里的源码最好是和用户当前使用的Hibernate版本相一致,免得到时又引起版本不同的问题),以起到对连接的用户名和密码进行加密码的方式,修改右如下:
<!--连接数据库的用户名-->
<propertyname="connection.username">c92b81768388f76d</property>
<!--连接数据库的密码-->
<propertyname="connection.password">1f65866187612115</property>
准备一个Encode.java,该JAVA实现加密encode和解密方法decode,加密和解密是配对的,先用其加密方法encode对其加密处理,用户名和密码就成了上面的方式,将Encode.java放到org.hibernate.util包下,在类org.hibernate.connection.DriverManagerConnectionProvider的configure方法中,先加上对用户名和密码解密的程序,,加到该方法的最上面,如下:
publicvoidconfigure(Propertiesprops)throwsHibernateException{
Stringuser=props.getProperty(Environment.USER);
Stringpassword=props.getProperty(Environment.PASS);
try{
//对用户名进行解密
props.setProperty(Environment.USER,Encode.decode(user));
//对密码进行解密
props.setProperty(Environment.PASS,Encode.decode(password));
}catch(Exceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
//...
}
这里在后面的处理之前,先解密,就达到了加密解密的效果。
再打包发布就OK了。
参考文章:http://hi.baidu.com/xhz12345/blog/item/f5256cef5f7fa131adafd563.html
<!--EndFragment-->
分享到:
相关推荐
1. **数据库连接**:包括`connection.driver_class`、`connection.url`、`connection.username`和`connection.password`,分别用于指定JDBC驱动类、数据库URL、用户名和密码。 2. **连接池**:如`c3p0.min_size`、`...
1. **数据库连接配置**:这里设置了数据库的URL、用户名、密码和驱动类名。例如: ```xml <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb <property name="hibernate.connection...
JDBC直连是直接在配置文件中提供数据库连接的相关信息,如数据库驱动、URL、用户名和密码。而JNDI查找则是通过Java Naming and Directory Interface(JNDI)服务来查找数据源。 1. JDBC直连配置示例: ```xml ...
在这个场景中,我们关注的是不通过传统的`hibernate.cfg.xml`文件来配置Hibernate,而是借助Spring框架的`LocalSessionFactoryBean`进行整合。 首先,`hibernate.cfg.xml`是Hibernate传统配置文件,它包含了数据库...
- `username` 和 `password`:数据库登录用户名及密码。 - `pool_size`:数据库连接池大小,较大的值有助于提高并发性能。 ##### 2. SQL 输出配置 ```xml <property name="hibernate.show_sql">true ``` **说明**...
### Hibernate配置文件hibernate.cfg.xml的详细解释 #### 一、引言 在Java持久化框架Hibernate中,`hibernate.cfg.xml`是...以上就是关于`hibernate.cfg.xml`配置文件的详细介绍,希望对理解Hibernate配置有所帮助。
2. 配置hibernate.cfg.xml:在该文件中,定义数据库连接信息,包括数据库URL、用户名、密码,以及JDBC驱动等。此外,还需要配置实体类的映射文件(hbm.xml),以及Hibernate的属性设置。 3. 创建Spring配置文件:在...
标题中的“Jdom生成hibernate.cfg.xml和读取其中内容”涉及到两个主要知识点:一是JDOM库在Java中解析和生成XML文档的应用,二是利用JDOM操作Hibernate配置文件`hibernate.cfg.xml`。 首先,JDOM是Java Document ...
`.hbm.xml`文件用于映射数据库表和Java类之间的关系,而`hibernate.cfg.xml`则是Hibernate的整体配置文件,包含了数据库连接、事务管理等核心设置。 ** Hibernate基础知识 ** Hibernate是一款流行的Java持久化框架...
这个文件通常包含数据库连接信息,如URL、用户名、密码,以及实体类和数据库表之间的映射信息。在Hibernate中,这些映射信息可以通过`<class>`标签来指定,每个`<class>`标签对应一个实体类,其`name`属性指定了实体...
通过这样的方式,我们可以将`hibernate.cfg.xml`中的配置分散到多个`.properties`文件中,提高代码的可维护性和安全性。这在大型项目或团队协作中尤其重要,因为它允许团队成员更专注于业务逻辑,而不是反复修改配置...
对于JDBC配置,包括了数据库驱动、URL、用户名和密码等属性。例如: ```xml <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost...
“hibernate.cfg.xml(模板)”是Hibernate的配置文件,它包含了数据库连接信息(如URL、用户名、密码)、SessionFactory的配置、缓存设置、日志设置等。开发者需要在此文件中配置自己的数据库连接参数,以便...
包括数据库驱动(driver-class-name)、URL(connection.url)、用户名(connection.username)和密码(connection.password)。例如: ```xml <property name="hibernate.connection.driver_class">...
3. `connection.username`和`connection.password`: 登录数据库的用户名和密码。 4. `connection.pool_size`: JDBC连接池大小,用于管理数据库连接。 5. `dialect`: Hibernate方言,对应不同数据库的SQL特性。 6. `...
2. **配置Hibernate**: 创建一个名为`hibernate.cfg.xml`的配置文件,设置数据库连接信息,包括URL、用户名、密码以及JDBC驱动类名。例如: ```xml <hibernate-configuration> <property name="hibernate....
3. **在`web.xml`中配置Hibernate**:在`WEB-INF/web.xml`中,我们需要添加一个初始化参数,指向`hibernate.cfg.xml`的位置。这样,当Tomcat启动时,可以通过这个参数加载Hibernate配置。例如: ```xml ... ...
- **hibernate.connection.username**:数据库用户名。 - **hibernate.connection.password**:数据库密码。 - **hibernate.dialect**:指定使用的方言,不同数据库有不同的方言实现。 - **hibernate.show_sql**:...
- `hibernate.connection.username` 和 `hibernate.connection.password`: 登录数据库的用户名和密码。 - `hibernate.show_sql`: 控制是否打印执行的SQL语句,便于调试。 - `hibernate.cache.provider_class`: ...