티스토리 뷰
반응형
단방향, 양방향 암호화
단방향 암호화: 복호화가 불가능한 암호화
양방향 암호화: 복호화가 가능한 암호화
단방향 암호화가 보안관점에서 더 좋지만, 예를 들어 비밀번호 찾기가 불가능하다는 단점이 있다. (비밀번호 재설정하는 방식으로 대체 가능)
Spring Security가 제공하는 BCrypt 알고리즘을 이용해 단방향 암호화를 하는 예시를 참고할 것이다.
Spring Security 의존성 추가
implementation ("org.springframework.boot:spring-boot-starter-security")
Config 설정
@Configuration
@EnableWebSecurity
class SecurityConfig {
@Bean
fun passwordEncoder() = BCryptPasswordEncoder()
@Bean
fun securityFilterChain(httpSecurity: HttpSecurity): SecurityFilterChain {
return httpSecurity.csrf(Customizer { it.disable() }).build()
}
}
securityFilterChain 메서드는, Spring Security를 사용하면 모든 API에 접근 권한을 확인하는데, (자체적인 로그인이 구현되고, 모든 API 호출 시 로그인이 필요한 것으로 보인다. 자세한 건 Spring Security를 더 공부해야 할 거 같다.)
일단 이 기능을 끄기 위한 설정이다.
이제, BCryptPasswordEncoder를 주입받아 사용하면 된다.
데이터 암호화 / 동등성 확인
PasswordEncoder의 encode 함수를 사용해 데이터를 암호화할 수 있고,
matches 함수를 사용해 암호화 전 값을 암호화된 값과 대조할 수 있다.
class Example @Autowired constructor (
private val encoder: BCryptPasswordEncoder
) {
fun encode(password: String) = encoder.encode(password) // String 반환
fun isEqual(password: String, encodedPassword: String) = encoder.matches(password, encodedPassword) // Boolean 반환
}
반응형
'서버 > Spring' 카테고리의 다른 글
[Spring] Spring에서 Redis 사용하기 (0) | 2024.03.13 |
---|---|
[Spring] Filter와 Interceptor (0) | 2024.03.13 |
[Spring] Spring Doc Swagger 문서 자동화 (0) | 2024.03.13 |
[Spring] 상태 유지 - 세션 관리 (쿠키, 세션) (0) | 2024.02.08 |
[Spring] 스프링 빈(Bean) (0) | 2024.02.04 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Service Primitive
- 교환 시스템
- 서비스 프리미티브
- 표현 계층
- 전송 계층
- HTTP
- 데이터링크
- ECN 패킷
- 와일드카드 마스크
- 오류 제어
- IP
- 네트워크 계층
- 거리 벡터 라우팅
- 가상 회선
- 혼잡
- 세션 연결
- 동기점
- 세션 계층
- 포트 주소
- OSI 7계층
- 라우팅
- 링크 상태 라우팅
- 데이터링크 계층
- TTL
- 네트워크
- Internetworking
- 통합점
- 사설 IP 주소
- 리키 버킷
- 네임 서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함