【SpringBoot实战入门】Shiro(三)MD5+Salt的认证

在这里插入图片描述

引言:Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架

简介

认证流程,一般实际应用是将盐和散列后的值存在数据库中,自动realm从数据库取出盐和加密后的值由shiro完成密码校验

  • MD5信息摘要算法,16进制32位

  • Salt加盐,增加随机数


加密处理测试

MD5三种加密处理测试

思路:

  • 1.直接使用MD5:创建MD5算法,shiro提供一个Md5Hash类
  • 2.使用MD5+Salt:创建MD5算法,第二个参数中传入随机盐salt
  • 3.使用hash散列对MD5+Salt处理:第三个参数传入hash散列次数
#TestShiroMD5 
public class TestShiroMD5 {
    public static void main(String[] args) {
        //1.创建一个md5算法然后使用
        Md5Hash md5Hash = new Md5Hash("123");
        //toHex()打印结果
        System.out.println(md5Hash.toHex());

        //2.使用MD5+salt处理
        Md5Hash md5Hash1 = new Md5Hash("123","X07ps");
        System.out.println(md5Hash.toHex());

        //3.使用md5+salt+hash散列进行处理,1024是次数
        Md5Hash md5Hash2 = new Md5Hash("123","X07ps",1024);
        System.out.println(md5Hash.toHex());
    }
}
# 控制台结果
e10adc3949ba59abbe56e057f20f883e
4521de6bab32eb309f1d6b8756fc2984
fee9f57ca13bd0c77caa5f41184d052c

自定义MD5的Realm测试Demo

思路:

  • 修改Shiro密码匹配的默认策略
    • 创建凭证匹配器
      • HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
    • 设置Realm使用hash凭证匹配器
      • credentialsMatcher.setHashAlgorithmName(“md5”);
    • 设置Realm凭证匹配器的次数
      • credentialsMatcher.setHashIterations(1024);
    • 凭证匹配器注入Realm即可

MD5+Salt+Hash散列的Realm测试Demo

  1. CustomerMd5Realm

自定义md5+salt的 CustomerMd5Realm

public class CustomerMd5Realm extends AuthorizingRealm {
   
    //授权
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值