base64 编码/解码
16进制字符串编码/解码
MD5
SHA
String md5 = new Md5Hash(pass, salt,2).toString();
String sha256 = new Sha256Hash(pass, salt, 2).toBase64();
String hash = new SimpleHash("SHA-1", pass, salt, 2).toHex();
PasswordService
passwordService 默认使用 DefaultPasswordService,如果有必要也可以自定义。
HashedCredentialsMatcher
CredentialsMatcher 的散列实现 HashedCredentialsMatcher
@Bean
public HashedCredentialsMatcher hashedCredentialsMatcher(){
HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
//加密方式
hashedCredentialsMatcher.setHashAlgorithmName("md5");
//加密次数
hashedCredentialsMatcher.setHashIterations(2);
//存储散列后的密码为16进制
hashedCredentialsMatcher.setStoredCredentialsHexEncoded(true);
return hashedCredentialsMatcher;
}
PasswordMatcher
多次密码输入错误将账号锁定
自定义我们自己的凭证匹配器类CustomerMatcher,继承自父类org.apache.shiro.authc.credential.HashedCredentialsMatcher,覆盖父类的doCredentialsMatch方法开发我们自己的业务逻辑
@Override
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
}