1. BCryptPasswordEncoder 방식
BCryptPasswordEncoder는 Spring Security 프레임워크에서 제공하는 비밀번호 인코딩 및 해싱을 위한 클래스입니다. 이 클래스는 BCrypt 해시 함수를 사용하여 비밀번호를 안전하게 암호화합니다.
BCryptPasswordEncoder를 사용하면 암호화된 비밀번호를 생성할 수 있으며, 생성된 암호화된 비밀번호는 암호 해독이 어렵기 때문에 보안성이 높습니다. 이는 사용자 비밀번호를 저장할 때 보안을 강화하고, 무단 액세스로부터 보호하기 위해 많이 사용됩니다.
2. DelegatingPasswordEncoder 방식
DelegatingPasswordEncoder는 Spring Security에서 제공하는 비밀번호 인코딩 및 해싱을 위한 클래스입니다. 이 클래스는 하나 이상의 PasswordEncoder를 사용하여 비밀번호를 암호화합니다. 주로 여러 가지 비밀번호 해싱 알고리즘을 지원하고자 할 때 사용됩니다.
의존성 추가
implementation 'org.springframework.security:spring-security-core:5.7.1'
내 생각
Spring Security 에서 가장 기본적인 암호화 클래스인 BCryptPasswordEncoder 가 기본이라고 생각하면 되고,
실제로 DelegatingPasswordEncoder 를 쓰더라도 사용자가 알고리즘을 명시해주지 않으면 기본 적으로 BCryptPasswordEncoder 로 선택 돼 사용 된다.
그치만 DelegatingPasswordEncoder 를 쓰는 이유는, 암호화 알고리즘의 변경이 필요할 경우 유연한 선택이 가능하기 떄문.
'Java > Spring' 카테고리의 다른 글
base64 (JWT 비밀키 생성) (0) | 2024.02.28 |
---|---|
[에러] com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'role' at row 1 (0) | 2024.02.28 |
DTO(Data Transfer Object) 를 사용하는 이유 (0) | 2024.02.18 |
@EntityListeners 사용해서 데이터의 저장 시간 넣어주기 (0) | 2024.02.18 |
테스트 방법 이모저모 (0) | 2024.02.16 |