使用了 HashedCredentialsMatcher 后密码并没有加密?
不太清楚有没有碰到密码没有真正加密的问题...吾辈在 CustomRealm 中对传进来的密码进行了断点查看发现并没有加密(还是明文), 老师的课程中没有对比密码, 不知道会不会有没有问题呢? (」゜ロ゜)」

查看传入的 token 的值

不太清楚有没有碰到密码没有真正加密的问题...吾辈在 CustomRealm 中对传进来的密码进行了断点查看发现并没有加密(还是明文), 老师的课程中没有对比密码, 不知道会不会有没有问题呢? (」゜ロ゜)」

查看传入的 token 的值

2018-04-27
同学你好,你配置的只是shiro验证的加密规则,在你保存的时候并没有去加密,所以数据库里的密码还是明文,你在保存的方法那里设置一下加密算法名字,加密次数,盐值即可。例子如下:
public void insert(User user1) {
//对用户密码进行加盐处理
String salt = RandomStringUtils.randomAlphabetic(20);
user.setPassword(new SimpleHash("MD5",user1.getPassword(),salt,20).toHex());
user1.setPassword(new Sha256Hash(user1.getPassword(),salt,20).toHex());
user1.setSalt(salt);
this.save(user1);
}你看的密码没有加密是正确的,
HashedCredentialsMatcher中的
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
Object tokenHashedCredentials = hashProvidedCredentials(token, info);
Object accountCredentials = getCredentials(info);
return equals(tokenHashedCredentials, accountCredentials);
}
方法会对传过来的明文密码按照HashedCredentialsMatcher对象的设置进行加密,然后与数据库里面的加密密码进行比对的举报