一.
优势:
- Spring security提供了
BCryptPasswordEncoder
类,使用Bcrypt强哈希方法来加密密码 - Bcrypt强哈希算法每次加密的结果都是不一样的。
二.
API:
public String encode(string rawPass)
: 对给定的内容进行加密,返回加密后的字符串public boolean matches(string rawPass, String encodedPass)
: 比较给定的字符串和加密后的字符串是否是同一个rawPass
:未加密的字符串encodedPass
: 加密后的字符串
三.
应用:
1.pom:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2.加入配置类
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/**")
.permitAll()
.anyRequest()
.authenticated()
.and().csrf().disable();
}
/*
* 注入BCryptPasswordEncoder
*/
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
}
3.启动类加注解
@EnableWebSecurity
4.注入 BCryptPasswordEncoder
@Autowired
BCryptPasswordEncoder bCryptPasswordEncoder;
5. 对密码加密
6.判断