`
sklst
  • 浏览: 38993 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为Hibernate配置文件加密的三套解决方案(二)

    博客分类:
  • J2EE
阅读更多
提要:本文将详细介绍使用Jasypt的加密功能为Hibernate配置文件加密

首先来了解什么是Jasypt
引用
Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。


你可以从SourceForge.net下载最新的Jasypt(目前的最新版本是1.5)
另外,使用Jasypt还需要几个Jar包的支持,分别是:
commons-codec-1.1.jar 和 commons-lang-2.1.jar这在你下载Jasypt压缩包的lib目录里已经附带了,如果你是Java SE 5或更早的版本,就需要ICU3.4.4或更高版本的支持,这些文件都可以在Jasypt网站的Dependencies项下找到。

另外,我们要了解一下Jasypt的加密方式,Jasypt提供了多种的加密方式,更允许用户自己编写加密方法,或使用Java增强加密算法(譬如 TripleDES)也可添加相应的包来扩展。
这里只介绍Jasypt默认的加密方法,其他方法感兴趣的朋友可以自己去研究;
Jasypt默认使用了对称加密的方法,即加密密钥和解密密钥是相同的,流程如下
引用
明文(可以是要加密的密码) + 密钥 =Jasypt默认算法=> 密文

解密过程与之相反
为了得到密文,我们先要使用Jasypt自带的工具,在下载Jasypt压缩包的bin目录中有如下文件:
引用
decrypt.bat
decrypt.sh
digest.bat
digest.sh
encrypt.bat
encrypt.sh
jasypt-cli-bundle.jar
README_IMPORTANT.txt

我们要用到encrypt命令来实现上面的过程加密明文,命令如下:
 encrypt input=明文(可以是密码) password=密钥 

上面的明文和密钥都不要加引号,output就是需要的密文,将其记录下来
得到密文以后,工作就很简单了

首先在你的项目中添加需要的包(jasypt-1.5.jar, commons-codec-1.1.jar, commons-lang-2.1.jar, icu4j-4_0.zip)
之后修改hibernate.cfg.xml文件
<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
   "-//Hibernate/Hibernate Configuration DTD//EN" 
   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
<hibernate-configuration>
  <session-factory>
    
    <property name="connection.provider_class">
      org.jasypt.hibernate.connectionprovider.EncryptedPasswordDriverManagerConnectionProvider
    </property> <!-- 这个是添加的provider类 -->
    <property name="connection.encryptor_registered_name">
      configurationHibernateEncryptor
    </property> <!-- 这里是加密密钥 -->
    
    <property name="connection.url">jdbc:mysql://localhost/reportsdb</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.username">reportsUser</property>
    <property name="connection.password">ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm)</property><!-- 这里的格式是ENC(密文) -->
    <property name="connection.pool_size">12</property>

    <property name="show_sql">true</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    
    <!-- Mappings etc... -->
        
   </session-factory>
</hibernate-configuration>

上面标注的地方是必须的,其他可以按照自己的实际配置,重新编译项目,就完成了。

另:第一种重载连接供应器

4
0
分享到:
评论
5 楼 sklst 2008-12-04  
jbeduhai 写道

加密有什么好处呢?


除了提高一定的安全性,没有看成能在性能上有多大的改进,但是,我介绍的第三种方法,使用连接池确实可以改进整体的效率。
4 楼 jbeduhai 2008-12-03  
加密有什么好处呢?
3 楼 sklst 2008-12-03  
whaosoft 写道

不明白为什么要加密呢~~

这个嘛。。。很多状况的,比如你和其他开发组共用一个测试服务器,公用的帐号登陆,虽然知道其他人不会去动你数据库里的东西,但是为防万一还是加上密码比较好;或者是你的程序是托管发布的,放在别人的服务器上,加密也能减少一些麻烦;我是第一种情况。
2 楼 lsk 2008-12-03  
whaosoft 写道

不明白为什么要加密呢~~

hbm.xml直接暴露了你所有的数据模型.
1 楼 whaosoft 2008-12-03  
不明白为什么要加密呢~~

相关推荐

    给hibernate配置文件加密解密的方案

    Hibernate 配置文件加密解密方案 在本文中,我们将讨论如何在 Hibernate 配置文件中对数据库密码进行加密和解密,以保护数据的安全。该方案通过使用 Java 的 Cipher 类和 DES 对称加密算法来实现加密和解密操作。 ...

    SSH详细配置文件(自己个人经验)

    #### 三、常见问题与解决方案 - **包的导入冲突**:在构建SSH框架时,Struts2、Hibernate和Spring的库可能存在版本不一致导致的冲突。解决方法是先删除所有自动导入的库,然后手动替换为预处理过的Jar包集合,确保...

    jasypt加密_spring整合.zip

    在这个"jasypt加密_spring整合.zip"压缩包中,我们将会探讨如何将Jasypt与Spring框架整合,以便在Hibernate配置文件中安全地存储敏感信息。 首先,Jasypt提供了两种主要的加密模式:强加密(Strong Encryption)和...

    Struts_ Hibernate整合和配置

    整合Struts和Hibernate可以提供一个强大的、高效的Web应用程序解决方案,使开发者能够更便捷地处理业务逻辑和数据存储。 Struts是一个基于MVC设计模式的Web应用框架,它帮助开发者组织和控制应用程序的流程。Struts...

    SpringBoot+hibernate+mysql+sqlserver双数据源

    总的来说,"SpringBoot+Hibernate+MySQL+SQLServer双数据源"项目展示了如何在Java环境中灵活处理多数据库的需求,为复杂的企业级应用提供了可靠的解决方案。通过理解并掌握这些技术,开发者可以提升自己的技能,应对...

    Ajax(DWR) + Spring + Hibernate + Struts整合登陆注册

    2. 集成Hibernate:设置Hibernate配置文件,定义数据源、实体类和映射文件,确保与Spring的整合。 3. 配置Struts:创建Struts配置文件,定义Action类及其对应的URL路径,以及结果视图的跳转。 4. 实现Ajax:在客户端...

    maven+springmvc+hibernate+shiro权限控制

    总之,"maven+springmvc+hibernate+shiro权限控制"的组合,不仅利用了Spring MVC的高效Web开发能力,Hibernate的便捷数据操作,还结合了Shiro的强大安全特性,为开发复杂、安全的Web应用提供了一套完整的解决方案。

    spring hibernate struts login3

    通过编写Hibernate配置文件和实体类,我们可以轻松地执行CRUD操作,比如查询数据库中是否存在特定的用户名和对应的加密密码。 **Struts框架** 是基于MVC设计模式的Java Web应用框架,主要用于构建动态网站。在登录...

    struts与hibernate结合的BBS系统

    当两者结合使用时,可以形成强大的企业级应用解决方案,尤其在构建BBS(Bulletin Board System,电子公告板系统)这样的交互性强、数据量大的应用时,这种结合显得尤为重要。 在"struts与hibernate结合的BBS系统"中...

    shiro 集成springmvc +hibernate mysql 登录认证以及授权

    在这个项目中,"shiro 集成springmvc +hibernate mysql 登录认证以及授权"是将Shiro与Spring MVC和Hibernate集成,用于构建一个基于MySQL数据库的完整的用户登录认证和权限管理解决方案。 1. **Shiro**:Apache ...

    Struts2+hibernate+spring 整合的登录案例

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于数据持久化,而Spring则提供了全面的依赖注入...

    学生选课管理系统(java开发,框架是spring+struts1.2+hibernate)

    总的来说,学生选课管理系统(v1.0)利用SSH框架构建了一个高效、易用的选课平台,为教育机构提供了数字化的解决方案,提升了教育管理的现代化水平。对于开发者而言,它也是一个学习和实践Java Web开发的优秀案例。

    ssh2框架整合与应用,相关的配置文件

    SSH2框架,全称为Struts2 + Spring2 + Hibernate3,是Java开发中常见的三大开源框架集成,用于构建高效、可扩展的企业级Web应用程序。这三个框架分别负责MVC(Model-View-Controller)架构的不同部分:Struts2作为...

    网络硬盘(struct 2+hibernate+spring)实现

    这个项目使用了Struts 2、Hibernate和Spring这三大Java Web开发框架,旨在提供一个高效、安全的网络存储解决方案。 **Struts 2框架**: Struts 2是MVC(模型-视图-控制器)架构模式的实现,它为Java Web应用程序...

    hibernate123

    虽然文件中的“hibernate123”标题和“hibernate release 3.6.5 final”描述指向了Hibernate框架的一个具体版本,但文件的其余部分似乎更多地涉及到了网络配置、数据库连接以及一些应用程序的具体登录信息,这些信息...

    web方面的处理struts,struts,hibernate等

    Struts、Struts2 和 Hibernate 是Java Web开发中三个非常重要的框架,它们分别在MVC(Model-View-Controller)架构的不同层面发挥作用,为开发者提供了高效、可维护的解决方案。 Struts 是 Apache 软件基金会的一个...

    基于SpringBoot+Hibernate+Shiro的库存管理系统后端.zip

    Hibernate通过实体类、配置文件以及映射文件,将数据库操作转化为对Java对象的操作,降低了数据库操作的复杂性,提高了开发效率。 【Shiro】 Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密...

    网络硬盘(Struts 2+Hibernate+Spring实现)

    通过Hibernate,开发者无需编写大量的SQL语句,而是通过配置文件和对象的CRUD(创建、读取、更新、删除)操作即可实现对数据库的操作。 Spring框架是一个全面的后端开发解决方案,提供了依赖注入(DI)、面向切面...

Global site tag (gtag.js) - Google Analytics