300x250
반응형
1. Password Encoder
스프링 시큐리티(Spring Security)에서 제공하는 비밀번호 암호화 방법이다. 단방향 암호화로 진행이 되는데 인터페이스와 구현체를 제공한다.
- 인터페이스 구성 요소
public interface PasswordEncoder {
// 비밀번호를 단방향 암호화
String encode(CharSequence rawPassword);
// 암호화되지 않은 비밀번호(raw-)와 암호화된 비밀번호(encoded-)가 일치하는지 비교
boolean matches(CharSequence rawPassword, String encodedPassword);
// 암호화된 비밀번호를 다시 암호화하고자 할 경우 true를 return하게 설정
default boolean upgradeEncoding(String encodedPassword) { return false; };
}
- 사용 하기
/* import 위치 */
import org.springframework.security.crypto.password.PasswordEncoder;
/* 인터 페이스 선언 */
@NonNull
private PasswordEncoder passwordEncoder;
/*암호화 사용*/
this.passwordEncoder.encode(user.getPassword())
암호화를 사용해서 저장하게되면 이렇게 암호화가 진행되어 DB에 저장된다.
암호화 되어 저장된 DB내부 모습
- 암호화된 비밀번호 확인하기 => matches() 사용하기.이런 식으로 db에 저장된 암호화된 비밀번호와 사용자가 입력한 평문의 비밀번호를 비교하여 동일한지 확인 할 수있다.
public boolean confirmUser(String password, String dbPassword) {
return passwordEncoder.matches(password, dbPassword);
}
출처 : https://footprint-of-nawin.tistory.com/83
300x250
반응형
'Back-End > Spring' 카테고리의 다른 글
[Spring Boot] Spring Boot + Jasper Report Example (0) | 2023.02.09 |
---|---|
[Spring] 응답 문자열 한글 깨짐 문제 해결 (0) | 2023.02.09 |
[QueryDSL]Spring data JPA 와 Querydsl 페이징 연동 (0) | 2023.02.09 |
[QueryDSL]나만 어려운 검색, 페이징 QueryDSL로 해결하기 (0) | 2023.02.09 |
[QueryDSL]QueryDSL JPA 알아보기 Feat.Spring Data (0) | 2023.02.09 |