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了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值