数据库账号密码加密详解及实例
2017-03-10 08:34
579 查看
数据库账号密码加密详解及实例
数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spring security 也是需要进行同步配置的,因为spring security 中验证的加密方式是单独配置的。如下:
<authentication-manager> <authentication-provider user-service-ref="userDetailService"> <password-encoder ref="passwordEncoder" /> </authentication-provider> </authentication-manager> <beans:bean class="com.sapphire.security.MyPasswordEncoder" id="passwordEncoder"> <beans:constructor-arg value="md5"></beans:constructor-arg> </beans:bean>
如上述配置文件所示,passwordEncoder才是在spring security对账号加密校验的地方。
spring security在拦截之后,会首先对用户进行查找,通过自己定义的userDetailService来找到对应的用户,然后由框架进行密码的匹配验证。
从userDetailService得到user以后,就会进入到DaoAuthenticationProvider中,这是框架中定义的 ,然后跳入其中的authenticate方法中。
该方法会进行两个检查,分别是
* preAuthenticationChecks : 主要进行的是对用户是否过期等信息的校验,调用的方法在userDetail中有定义的。 * additionalAuthenticationChecks : 这个就是用户名密码验证的过程了。
而PasswordEncoder是我们xml中注入的bean,所以了,我们调用的则是我们自己完成的passwordEncoder
public class MyPasswordEncoder extends MessageDigestPasswordEncoder { public MyPasswordEncoder(String algorithm) { super(algorithm); } @Override public boolean isPasswordValid(String encPass, String rawPass, Object salt) { return encPass.equals(DigestUtils.md5DigestAsHex(rawPass.getBytes())); } }
这是我对其实现的一个简单版本,调用的就是spring自带的加密算法,很简单了,当然也可以使用复杂的加密方法,这个就靠自己了
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章推荐
- [置顶] PHP账号密码HashPassword加密方式破解代码实例
- 账号密码数据库加密说明
- druid数据库账号密码加密解密
- 数据库账号密码加密
- 数据库账号密码加密
- 微信小程序 sha1 实现密码加密实例详解
- 数据库密码被MD5加密了
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 用 MD5 加密数据库中的用户密码
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
- ORACLE实例与数据库详解
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
- struts实例详解3--数据库链接
- TOMCAT 连接池数据库密码加密方法
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
- QuickCSharp框架开发(17)------读出MS SQL Server 数据库中加密的密码
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- PB数据库连接描述文件的密码加密和解密原理
- 第三篇 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
- 数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名 详解