- 浏览: 251921 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (144)
- J2EE (19)
- 数据库 (9)
- 操作系统 (8)
- 编程综合 (3)
- 软件工程 (2)
- 互联网 (12)
- 云计算 (16)
- C++编程 (1)
- Python (8)
- Ruby (23)
- iPhone (14)
- Android (3)
- Symbian (1)
- 手机开发 (3)
- 版本管理 (2)
- Linux (10)
- Lighttpd (3)
- 应用服务器 (5)
- HTML5 (2)
- VMware (1)
- PHP (11)
- Apache (0)
- Nginx (0)
- ASP.NET (1)
- ASP (2)
- Javascript (2)
- Flex (1)
- 无线组网 (1)
- CSS (1)
最新评论
-
kpcbk:
你好,这个破解版好像数据超过25条就显示不出来了,是不是破解有 ...
Flex中使用fusioncharts破解版配置 -
zay1007:
as 文件有错啊
Flex中使用fusioncharts破解版配置 -
aruis:
很不错,今天正好用到了。氧吧那里下载的as文件报错。你这里的就 ...
Flex中使用fusioncharts破解版配置 -
李晓进:
安装后之后点了扫描之后解码不出信息来呀????????O(∩_ ...
条码扫描二维码扫描——ZXing android 源码简化 -
kittychina:
很好,继续!
PHP开源CMS-Drupal做视频站点(第1版)
Acegi 对于密码提供三种方式:明文及不采用任何加密方式、MD5加密方式、哈希算法加密方式。
只需要在DAO的认证管理器中分别加入一下对应一下配置:
第一种:不使用任何加密方式的配置
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<!-- 明文加密,不使用任何加密算法, 在不指定该配置的情况下,Acegi默认采用的就是明文加密 -->
<!--
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.PlaintextPasswordEncoder">
<property name="ignorePasswordCase" value="true"/>
</bean>
</property>
-->
</bean>
第二种:MD5方式加密
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<!-- false 表示:生成32位的Hex版, 这也是encodeHashAsBase64的,
Acegi 默认配置; true 表示:生成24位的Base64版 -->
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
第三种:使用MD5加密,并添加全局加密盐
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
<!-- 对密码加密算法中使用特定的加密盐及种子 -->
<property name="saltSource">
<bean class="org.acegisecurity.providers.dao.salt.SystemWideSaltSource">
<property name="systemWideSalt" value="acegisalt" />
</bean>
</property>
</bean>
第四种:使用MD5加密,并添加动态加密盐
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
<!-- 对密码加密算法中使用特定的加密盐及种子 -->
<property name="saltSource">
<!-- 通过动态的加密盐进行加密,该配置通过用户名提供加密盐, 通过UserDetails的getUsername()方式 -->
<bean class="org.acegisecurity.providers.dao.salt.ReflectionSaltSource">
<property name="userPropertyToUse" value="getUsername" />
</bean>
</property>
</bean>
第五种:使用哈希算法加密,加密强度为256
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
<constructor-arg value="256" />
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
第六种:使用哈希算法加密,加密强度为SHA-256
Java代码
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder">
<constructor-arg value="SHA-256" />
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
</bean>
上述配置只是在Acegi通过表单提交的用户认证信息中的密码做各种加密操作。而我们存储用户密码的时候,可以通过一下程序完成用户密码操作:
Java代码
package org.lee.authentication.acegi;
import org.acegisecurity.providers.encoding.Md5PasswordEncoder;
import org.acegisecurity.providers.encoding.ShaPasswordEncoder;
public class TestPasswordEncoder {
public static void main(String[] args) throws Exception {
md5(); // 使用简单的MD5加密方式
sha_256(); // 使用256的哈希算法(SHA)加密
sha_SHA_256(); // 使用SHA-256的哈希算法(SHA)加密
md5_SystemWideSaltSource(); // 使用MD5再加全局加密盐加密的方式加密
}
public static void md5() {
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
// false 表示:生成32位的Hex版, 这也是encodeHashAsBase64的, Acegi 默认配置; true 表示:生成24位的Base64版
md5.setEncodeHashAsBase64(false);
String pwd = md5.encodePassword("123", null);
System.out.println("MD5: " + pwd + " len=" + pwd.length());
}
public static void sha_256() {
ShaPasswordEncoder sha = new ShaPasswordEncoder(256);
sha.setEncodeHashAsBase64(false);
String pwd = sha.encodePassword("123456", null);
System.out.println("哈希算法 256: " + pwd + " len=" + pwd.length());
}
public static void sha_SHA_256() {
ShaPasswordEncoder sha = new ShaPasswordEncoder();
sha.setEncodeHashAsBase64(false);
String pwd = sha.encodePassword("123456", null);
System.out.println("哈希算法 SHA-256: " + pwd + " len=" + pwd.length());
}
public static void md5_SystemWideSaltSource () {
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
md5.setEncodeHashAsBase64(false);
// 使用动态加密盐的只需要在注册用户的时候将第二个参数换成用户名即可
String pwd = md5.encodePassword("123456", "acegisalt");
System.out.println("MD5 SystemWideSaltSource: " + pwd + " len=" + pwd.length());
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyit007/archive/2010/10/16/5945655.aspx
发表评论
-
Glassfish 安装为windows 系统服务
2011-08-18 09:48 1355(文档来源官方) http://wiki.glassfi ... -
Collections.sort list排序
2011-07-23 13:40 1168newList是个Value对象的List,orderId是V ... -
glassfish下的性能调优:令人极度困惑的Max Connections参数
2011-07-13 17:49 2123近日做性能调优,主要 ... -
(转)Acegi 各种加密方式详解
2011-06-28 10:51 881Acegi 对于密码提供三种方式:明文及不采用任何加密 ... -
Glassfish-v2和apache2.2.6的整合
2011-06-17 17:41 9551.下载mod_jk-1.2.26-httpd-2.2.4.s ... -
在Eclipse下调试GlassFish程序
2011-06-17 17:29 9581. 启动GlassFIsh domain(\bin\as ... -
用 GlassFish v2 替换 Tomcat 5.x
2011-06-17 17:05 9011. 背景用了很多年的Tomc ... -
Windows下全新安装Glassfish服务器
2011-06-17 17:03 1025一、了解并下载Glassfish服务器Glassfish主页: ... -
主题:jquery1.4+SWFUpload2.2+COS的jquery上传插件
2011-06-14 16:56 1503一: 引入必须的js文件和css文件: Java ... -
Grails 1.4 M1发布
2011-06-11 18:26 1140Grails 1.4 M1已经发布了,Grails是一套用于快 ... -
(转)详解HermesJMS 连接 ActiveMQ
2011-01-10 17:52 1198ActiveMQ 是一个实现了 JMS 1.1 规范的开源的 ... -
(转)Log4j的AsyncAppender能否提升性能
2010-08-04 18:38 1210近日在写多线程方面的东西,需要对多线程进行日志监控 ... -
Tomcat中的Connector配置
2010-07-20 14:11 3044JBoss使用Tomcat作为Web容器,因此在JBo ... -
Weblogic下SqlServer2008 XA驱动连接配置问题
2010-07-16 12:45 3639这几天在Weblogic下配置Sq ... -
Weblogic下使用Apache插件中转后,远程IP地址不正确解决办法
2010-07-16 11:30 1641我在Weblogic9.20下使用Apache插件后,远程 ... -
TOMCAT线程池的配置(转载)
2010-07-14 23:15 820首先在你的TOMCAT的目录下%TOMCAT_HOME%\co ... -
Tomcat中URL大小写问题
2010-07-14 22:37 3474今天遇到个客户,强力要求我们软件开发人员把Tomcat设置成为 ... -
Weblogic下SqlServer2000 XA驱动连接配置常见问题
2010-07-02 16:51 1126这几天在Weblogic下配置SqlServer2000 XA ...
相关推荐
《玩转Acegi:SpringSide项目中的安全配置详解》 Acegi Security是Spring社区早期的安全框架,它为Spring应用提供了全面的身份验证和授权服务。在本文中,我们将深入探讨SpringSide项目中`applicationContext-acegi...
### Acegi认证服务详解 #### 一、Acegi简介与背景 Acegi是Spring Security的前身,是一款基于Spring框架的安全管理工具,旨在为应用程序提供安全控制功能,包括身份验证(Authentication)和授权(Authorization)...
Acegi Security(现已被Spring Security替代)是Spring Framework的一个扩展,它提供了一个全面的安全管理框架,包括访问控制、会话管理、密码加密等功能。Acegi Security允许开发者通过XML配置或者编程方式定义安全...
### Acegi开发指南知识点详解 #### 一、Acegi简介 **Acegi**是一个基于Spring框架的安全性解决方案,专门设计用于Web应用的安全控制。Acegi的主要优势在于它提供了一种声明式的安全控制方式,允许开发者通过配置而...
### Spring Security核心知识点详解 #### 一、Spring Security概述与整体架构 ##### 1.1 什么是Acegi Security? Acegi Security(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全性...
### Spring安全核心知识点详解 #### 一、Spring Security概述与入门 ##### 1.1 什么是Spring Security? Spring Security是Spring框架的一个扩展模块,提供了一套全面的安全解决方案,旨在为基于Java的应用程序...
《xfire与Spring Security整合实现WS-Security安全认证详解》 在现代企业级应用开发中,安全性是不可或缺的重要环节。Spring Security作为Java领域的安全框架,提供了全面的身份验证和授权服务。而Xfire(现已被...
8. **API详解**:深入剖析Spring Security的主要API,包括SecurityContextHolder、Authentication、UserDetails、AccessDecisionManager等,帮助开发者更好地利用这些接口进行开发。 9. **源码分析**:如果教程包含...
在IT安全领域,JSecurity(后更名为Apache Shiro)是一款轻量级且功能强大的Java安全框架,它为开发者提供了简单易用的安全控制手段,相较于早期的Acegi Security(现为Spring Security),JSecurity在设计上更注重...
Struts可以配合Spring Security(以前称为Acegi)实现登录页面和权限控制。Spring Security提供了认证和授权服务,可以根据用户角色分配不同的访问权限。在学生管理系统中,可能有学生、教师和管理员等多种用户角色...
映射标记 Java的“静态库链接” 姚博文 集成ACEGI 进行权限控制 SWT可交互式Browser控件 JDK配置(注意) RIA简介(第一部分) 在 Eclipse 中嵌入 NASA World Wind Java SDK, 用3DES加密解密 ...