1.密码加密器
在数据库中存储的密码是一个密文
shiro帮我们提供很多种加密器---如果没有指定加密器,那么都使用默认的无加密器
package demo01;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.crypto.hash.SimpleHash;
public class Test {
public static void main(String[] args) {
//Md5Hash md5Hash = new Md5Hash("12345");
//System.out.println(md5Hash);//其他人会把一些场景的明文加密后的密文存储的一个很大的数据库
//Md5Hash md5Hash1 = new Md5Hash("12345","aaa");//盐
//System.out.println(md5Hash1);
//Md5Hash md5Hash2 = new Md5Hash("12345", "aaa", 3);//3:表示加密次数
//System.out.println(md5Hash2);
SimpleHash simpleHash = new SimpleHash("SHA", "12345");
SimpleHash si = new SimpleHash("MD5", "12345");
System.out.println(simpleHash);
System.out.println(si );
}
}
1.1把密码匹配器使用在shiro
1)修改userService中的代码
2)修改测试代码
3)修改MyRealm
3)实体类user中 添加盐
package demo01;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private String nickName;//昵称
private String salt;//盐
}
连接上一篇什么是shiro