@Override
public void Register(RegisterRequest registerRequest) {
String encryptedPassword = encryptPassword(registerRequest.getPassword());
registerRequest.setPassword(encryptedPassword);
registerRequest.setUserId(UUID.randomUUID().toString());
registerRequest.setCreateTime(Calendar.getInstance().getTime());
registerRequest.setState(1L);
loginMapper.Register(registerRequest);
}
private String encryptPassword(String rawPassword) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder.encode(rawPassword);
}
在service使用bcrypt加密密码使用Spring Security的BCryptPasswordEncoder的加密
使用Mybatis XML映射
加密成果
解密
@Override
public boolean Login(LoginRequest loginRequest) {
LoginRequest login = loginMapper.Login(loginRequest.getUsername());
if (login != null) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder.matches(loginRequest.getPassword(), login.getPassword());
}
return false;
}
先从从数据库获取加密的密码,再使用加密库来验证密码
Mybatis XML映射