spring boot如何实现密码的加密
时间: 2023-02-09 20:42:15 浏览: 78
Spring Boot 通常使用 Spring Security 这个框架来实现密码的加密。Spring Security 提供了一些内置的 PasswordEncoder 接口来帮助你实现密码的加密。
你可以在配置文件中配置 Spring Security 使用哪种 PasswordEncoder。例如,你可以使用 BCryptPasswordEncoder 来实现密码的 BCrypt 加密。
具体来说,你需要在你的配置类上加上 @EnableWebSecurity 注解,然后在你的配置类中配置一个 AuthenticationManagerBuilder 对象,并调用其 passwordEncoder() 方法来设置 PasswordEncoder。
例如:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(passwordEncoder())
.withUser("user").password(passwordEncoder().encode("password")).roles("USER");
}
}
```
在这个例子中,我们使用了 BCryptPasswordEncoder 来对密码进行加密,并将加密后的密码存储到内存中。
当用户登录时,Spring Security 会使用相同的 PasswordEncoder 来对用户提交的密码进行加密,然后与存储在内存中的密码进行比较。如果两者相同,则认为用户输入的密码正确,登录成功;如果不同,则登录失败。
希望这个回答对你有帮助!