`

ACEGI的加密

    博客分类:
  • J2EE
阅读更多
今天又看了下acegi,学习就是这样,不断重复啊。
一次有一次的收获。

今天解决问题:密码加密!

描述:用户注册时,插入数据库中的密码是加密的。这个加密函数如何写?

解决方法:

大家都知道ACEIG的认证:daoAuthenticationProvider

判断Authentication.getCredentials()与UserDetails.getPassword
getCredentials取得登陆界面的输入密码
getPassword取得数据库中的密码

在认证的时候,XML的配置了
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.MD5PasswordEncoder">
</property>
<property name="saltSource">
<bean class="org.acegisecurity.providers.dao.salt.SystemWideSaltSource">
<property name="systemWideSalt" value="aaa">
</property>


这个只是把你输入的密码进行加密。

但是在注册的时候得先知道这个加密过程,以及加密的实现。不然,两个密码也不equal

这个看看acegi的源码就可以得到实现的方法

其实acegi的实现也是通过javax.security.MessageDigest。

首先确定是哪种加密方式
MD5,SHA等。。
MessageDigest m = MessageDigest.getInstance("MD5");

接着判断,是用怎么样的编码函数对密码摘要编码。
Hex,Base64
如果在XML中没有配置,就默认用HEX
Hex.encode(m.digest(rewPass.getBytes()));

咦,怎么没有用到加密盐,刚忘了,在PasswordEncoder的encodePassword(String rawPass,Object salt)中得到的salt就是XML中systemWideSalt的值。
加密盐其实是加密种子,它是与原始密码一起加密运算的。
上面的Hex.encode(m.digest(rewPass.getBytes()))应该这样写
Hex.encode(m.digest((rewPass+salt).getBytes()))

现在一切清楚了。

加密方法也出来了。
	public static String toMD5(String rawPass ){
		rawPass +="{eastjava1995}";//{eastjava1995} is salt,mapping the xml file
		String encPass = null;
		try{
			 MessageDigest md5=MessageDigest.getInstance("MD5");
			 encPass = new String(Hex.encodeHex(md5.digest(rawPass.getBytes())));
		}catch(Exception e){
			e.printStackTrace();
		}
		return encPass;
	}


分享到:
评论

相关推荐

    acegi 完整实例

    acegi的一个完整实例,其中包括匿名登录 session 数据库验证 加密 缓存 session有效时间 注销等acegi的实现的全部功能;还有总结的acegi的完整资料。

    Acegi-security-samples-tutorial-1.0.7.zip 实例代码解析

    Acegi-security-samples-tutorial-1.0.7.zip 实例代码解析:把官方的这个实例导入自己建的项目中,对其中的代码都加上了注释,有利于大家的学习。

    jasypt API Docs 1.9 (CHM格式)

    Jasypt开发团队推出了Java加密工具Jasypt 1.4,它可与Spring Framework、Hibernate和Acegi Security集成。 Jasypt 1.4的新特征包括:加密属性文件(encryptable properties files)、Spring Framework集成、加密...

    jasypt-1.9.3.jar

    Jasypt 这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成 hibernate,Spring Security(Acegi)来增强密码管理。 &gt;Jasypt是一个Java库,可以使开发者不需...

    jasypt-1.9.3-dist.zip

    Jasypt 这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成 hibernate,Spring Security(Acegi)来增强密码管理。 Jasypt是一个Java库,可以使开发者不需...

    jasypt-1.7 简单的java字符串加密工具

    简单好用的String加密工具。 为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。

    Hibernate+Struts+Spring

    在安全方面集成Spring的安全框架Acegi和最流行的Ajax技术。与其他框架相比,它提供了各种Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用户管理、根据不同的用户可以展现不同的菜单,同时还带有...

    jasypt1.9.2&jce1.6-1.8

    Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。 更多资源详见: ...

    SpringSecurity使用和分析.docx

    Spring Security 的前身是 Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。Spring Security目前已经升级到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持更加现代化的密码加密方式。可以...

    java文集

    映射标记 Java的“静态库链接” 姚博文 集成ACEGI 进行权限控制 SWT可交互式Browser控件 JDK配置(注意) RIA简介(第一部分) 在 Eclipse 中嵌入 NASA World Wind Java SDK, 用3DES加密解密 ...

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    spring security 安全权限管理手册

    MD5加密 获取当前用户信息 7、自定义访问拒绝页面 8、动态管理资源结合自定义登录页面 9、 Spring Security 与 CAS整合 配置JA-SIG 配置Spring Security 为CAS配置SSL 10、标签的使用 11、自动登录 12、防御...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    16.3.1 Acegi插件 197 16.3.2 Debug插件 204 16.4 本章小结 205 第四篇 Grails解密 第17章 高级Groovy特性 208 17.1 动态方法调用与属性访问 208 17.1.1 动态方法调用 208 17.1.2 动态属性访问 208 17.2 ...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

Global site tag (gtag.js) - Google Analytics