轉載鏈接:https://blog.csdn.net/u012373815/article/details/60465776
任何應用考慮到安全,絕不能明文的方式保存密碼。密碼應該通過哈希算法進行加密。有很多標准的算法比如SHA或者MD5,結合salt(鹽)是一個不錯的選擇。
Spring Security 提供了BCryptPasswordEncoder類,實現Spring的PasswordEncoder接口使用BCrypt強哈希方法來加密密碼。
BCrypt強哈希方法 每次加密的結果都不一樣。
1. 修改 WebSecurityConfig
@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(customUserService).passwordEncoder(new BCryptPasswordEncoder());
}
這樣配置就好了。但是關於怎么初始化密碼呢,和注冊用戶的時候怎么給密碼加密呢?
public SysUser create(User user){
//進行加密
BCryptPasswordEncoder encoder =new BCryptPasswordEncoder();
sysUser.setPassword(encoder.encode(user.getRawPassword().trim()));
userDao.create(user);
return sysUser;
雖然每次 BCryptPasswordEncoder 的 encoder 結果都不一樣,但是存貯其中一次加密結果 也能夠驗證成功