TokenProvider의 Key 관련하여 질문이 있습니다.
378
投稿した質問数 2
안녕하세요, 강의 너무 잘 보고있습니다.
`JwtTokenProvider.kt` 생성 중, 궁금한 것이 있어 질문 남깁니다.
createToken에서 signWith에 사용하는 key를
private val key by lazy { Keys.hmacShaKeyFor(Decoders.BASE64.decode(secret)) }yml파일에 쓴 key 그대로 사용하는 것이 아닌, 아래와 같이 한번 더 decode를 거치는 것으로 보여지는데요.
signwith를 통해 또 다시 HS256으로 인코딩 하는데, 그 전에 한번 더 디코딩한 키를 넣는 이유가 궁금합니다!
回答 1
0
안녕하세요 이정음님, 인프런 AI 인턴이에요.
JwtTokenProvider.kt에서 signWith 메서드에 사용하는 key의 처리과정과 관련하여 궁금한 사항이 있으신 것 같네요.
사용하고 계신 코드에서는 Decoders.BASE64.decode(secret)를 통해 yml 파일에 작성된 key를 Base64 디코딩하고,
Keys.hmacShaKeyFor()를 통해 다시 HMAC 키로 변환합니다. 이렇게 변환된 키를 signWith 메서드에 전달하여 JWT 서명에 사용합니다.
이 과정에서 key를 한번 더 디코딩하고 변환하는 이유는, yml 파일에 작성된 key가 Base64로 인코딩되어 있기 때문입니다.
JWT의 HS256 서명 알고리즘은 이진 형태의 키를 사용합니다. 따라서 키를 인코딩된 형태에서 이진 형태로 변환해야 합니다.
이를 위해 yml 파일에 작성된 key를 먼저 Base64 디코딩하여 원래의 이진 형태로 되돌린 다음, 해당 키를 HMAC 키로 변환하여 사용합니다.
즉, 키를 디코딩하고 변환하는 과정은 JWT 서명을 생성하기 위한 초기 설정 과정으로 볼 수 있습니다.
잘 이해되셨는지요? 추가 질문이 있으시면 언제든지 물어보세요!
패키지 구분에 대해 궁금한게 있습니다
0
7
1
스프링부트 서버 에러나요
0
17
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
26
1
2026.04에 추가된 강의 시청 불가
0
27
1
Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
0
18
1
인가 코드 발급(프론트 vs 백)
0
28
2
validation 추가하기에 대해 질문
0
105
1
로그인 후 Token 발행 시 postman 에러메시지
0
156
1
unique 작성법
0
151
1
4.1 마지막 회원가입 실행되지만 빈화면 뜸
0
223
3
4.1강 마지막 회원가입 실행
0
154
1
2.4강에서 1:18초쯤에 <T>를하고 뭔가 추가하는 작업
0
177
2
class 와 data class
0
182
1
토큰에서 예외 발생시 처리
0
245
1
안녕하세요 선생님 rememberme 질문드립니다..!
0
245
1
Next Lv 강의에 대해서 계획중이신게 있을까요?
0
285
1
테이블 create문
0
182
1
DTO 생성 과정에서 궁금한 점이 있어요!!
0
560
3
2.5강에서 포스트맨 오류와 전에 실습한 내용에 대해 질문 드립니다
0
592
2
스프링 시큐리티 예외 RestControllerAdvice로 처리
0
443
1
1 : N 필드 `memberRole` 에 @OneToMany 옵션 cascade 미사용, 컬랙션 null 초기화 에 대한 질문입니다.
0
406
2
loginId는 왜 변경이 안될까요?
0
420
1
memberRole필드 질문이요~
0
494
1
Validation 관련해서 질문드립니다.
1
795
2

