Shiro 密码的加密应用(六)

一.密码的比对

 (1.1) 按住UsernamePasswordToken到源代码里,设置断点,进行调试.如下所示:


(1.2)调试



(1.3)调试CredentialsMatcher接口


选中CredentialsMatcher接口,按住Ctrl+T能查看到有很多加密的方式


总结:

 通过AuthenticatingRealm 的credentialsMatcher属性来进行密码比对哦!

  doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info);


二.密码的MD5加密

2.1.如何把一个字符串加密为MD5



2.2.替换当前Realm的credentialsMatch属性,直接使用HashedCredentialsMatch对象,

并设置加密算法就ok!

  application.xml配置文件修改:


 ShiroRealm类中测试


 将原来的密码修改成这个加密后的值哦!


运行也是Ok的!

三.密码的MD5盐值加密

3.1.为何用MD5盐值加密?

   由于两个原始密码相同,加密后也是一样的,那么能否加密后的值不一样呢!
3.2.如何做: 
   (a)在doGetAuthenticationInfo方法返回值创建SimpleAuthenticationInfo对象的时候,
  需要使用 SimpleAuthenticationInfo(principal, credentials, credentialsSalt, realmName)构造器.
   (b)使用ByteSource.Util.bytes()来计算盐值
   (c)盐值需要唯一:一般使用随机数字符串或userid
   (d)使用new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations);

  来计算盐值加密后的密码的值

  注意:使用ByteSource.Util.bytes()来计算盐值

.修改ShiroRealm类


运行:

(1)用户mike/admin,密码aaa登录ok!

 


(2)用户your,密码aaa登录no!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值