springboot+security 的BCryptPasswordEncoder 使用

Posted 双斜杠少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+security 的BCryptPasswordEncoder 使用相关的知识,希望对你有一定的参考价值。

任何应用考虑到安全,绝不能明文的方式保存密码。密码应该通过哈希算法进行加密。有很多标准的算法比如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 u user)
        //进行加密
        BCryptPasswordEncoder encoder =new BCryptPasswordEncoder();
        sysUser.setPassword(encoder.encode(user.getRawPassword().trim()));
        userDao.create(user);
    return sysUser;

虽然每次 BCryptPasswordEncoder 的 encoder 结果都不一样,但是存贮其中一次加密结果 也能够验证成功

以上是关于springboot+security 的BCryptPasswordEncoder 使用的主要内容,如果未能解决你的问题,请参考以下文章

springboot整合security和vue

springboot security

直接使用security.basic.path无效|——springboot2.0以上的security的配置

spring boot整合security 4,怎么设置忽略的静态资源?

SpringBoot + Thymeleaf + Security Dialect 怎么配置?

SpringBoot配置属性-Security