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