shiro登录加盐出错UsernamePasswordToken - admin, rememberMe=false] did not match the expected credentials

13 篇文章 0 订阅
9 篇文章 0 订阅

org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false] did not match the expected credentials.错误

问题原因:

集成shiro后登陆时候账号密码输入正确出现这种错误。
原因在于认证操作的时候建立的 SimpleAuthenticationInfo 认证结果信息和
shiroConfig的加密配置得到的结果不一致导致

如下 不一致抛出的异常则为上述错误信息
在这里插入图片描述

我的产生原因:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面的hash次数需要保持一致,不一致得到hash之后的密码就不一样,就导致上述的错误。

补充散列算法MD5加密

 /**
     * 散列算法一般用于生成一段文本的摘要信息,散列算法不可逆,也就是将内容生成摘要,但是反过来通过摘要生成内容是不可以的。
     * 散列算法常用于对密码进行散列,常用的散列算法有MD5、SHA。
     * 一般散列算法需要提供一个salt(盐)与原始内容生成摘要,这样做的目的是为了安全性。
     * @param args
     */
    public static void main(String[] args) {
        Md5Hash  md5Hash = new Md5Hash("123456");
        System.out.println("md5加密,不加盐:"+md5Hash.toString());

        //md5加密,加盐,一次hash
        String password_md5_sale_1 = new Md5Hash("123456", "abc", 1).toString();
        System.out.println("md5加密,加盐,一次hash:"+password_md5_sale_1);

        //md5加密,加盐,两次hash
        String password_md5_sale_2 = new Md5Hash("123456", "abc", 2).toString();
        System.out.println("md5加密,加盐,两次hash:"+password_md5_sale_2);//相当于md5(md5('123456'))

        //使用simpleHash
        String simpleHash = new SimpleHash("MD5", "123456", "abc", 1).toString();
        System.out.println("simpleHash方式:"+simpleHash);
    }

参考文章:

https://www.cnblogs.com/telwanggs/p/7118116.html

https://blog.csdn.net/aaarz/article/details/101051282

https://blog.csdn.net/weixin_43881008/article/details/89514443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值