-
Notifications
You must be signed in to change notification settings - Fork 122
C、密码
wangjie edited this page Dec 25, 2019
·
3 revisions
#jsets-shiro配置
jsets:
shiro:
passwd-alg: MD5 #密码加密算法,支持MD5/SHA1,不配置默认MD5
passwd-salt: ofaffadfev1234567--090swctewst #密码加密HASH盐 ,不配置默认使用一组乱序数字
passwd-iterations: 2 #密码加密HASH次数,不配置默认2次
/**
* 保存用户信息
*/
public void save(UserEntity user){
// 密码明文加密存储
user.setPassword(ShiroUtils.password(user.getPassword()));
userMapper.insert(user);
}
实现PasswordProvider接口
public interface PasswordProvider {
/**
* 加密
* @param plainPassord 明文密码
* @return 密文密码
*/
String encrypt(String plainPassord);
}
如下面的示例,是DES加密的实现:
/**
* 自定义对称加密算法
* @author wangjie
*/
public class MyDESPasswordProvider implements PasswordProvider{
@Override
public String encrypt(String plainPassord) {
return DES.encrypt(plainPassord,DES_KEY);
}
}
@Configuration
public class ApplicationConfig{
// 账号数据提供服务
@Autowired
private AccountProviderImpl accountProviderImpl;
// 自定义的加密实现
@Autowired
private MyDESPasswordProvider myDESPasswordProvider;
@Bean
public ShiroCustomizer shiroCustomizer() {
ShiroCustomizer customizer = new ShiroCustomizer();
// 设置账号数据提供服务
customizer.setShiroAccountProvider(accountProviderImpl);
// 设置加密实现
customizer.setPasswordProvider(myDESPasswordProvider);
return customizer;
}
}