使用Shiro1.2中的PasswordService实现密码加密存储和比对

在Shiro之前的版本中,密码加密一般采用如下代码:
String digestString = new Sha256Hash(password, salt, numIterations).toBase64();

密码比对一般采用HashedCredentialsMatcher或Sha256CredentialsMatcher等相关比对类,在新版1.2中,增添了一项重要的功能就是密码服务,使得加密和比对更加方便。

比如:

加密就只需要密码这个参数
PasswordService svc = new DefaultPasswordService(); 
svc.encryptPassword(password);
比对就用如下语句:encrypted是密文
svc.passwordsMatch(password, encrypted);

看到上述代码,一个感觉就是:程序逻辑很清晰。

同样的,在1.2中,同样可以通过密码服务配置,实现与jdbc中的密码密文进行比对。直接上代码了:

以下是shiro.ini

passwordService = org.apache.shiro.authc.credential.DefaultPasswordService
passwordMatcher = com.helloweb.shm.PasswordMatcherEx
passwordMatcher.passwordService = $passwordService

ds = com.mysql.jdbc.jdbc2.o
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值