K
KRYFT Problem Bank
보안 보통 코딩

JWT 토큰 검증 구현

JWT 토큰의 서명을 검증하는 함수를 구현하세요

30분
100점
#3639

문제 설명

JWT(JSON Web Token)의 구조를 이해하고, 서명을 검증하는 함수를 구현하세요.

JWT 구조

header.payload.signature
- header: {"alg": "HS256", "typ": "JWT"} (Base64URL)
- payload: {"sub": "1234", "exp": 1234567890} (Base64URL)
- signature: HMAC-SHA256(header.payload, secret)

요구사항

  • 토큰을 세 부분으로 분리
  • 헤더와 페이로드를 Base64URL 디코딩
  • 서명 검증 (HMAC-SHA256)
  • 만료 시간(exp) 검증
  • 유효하면 페이로드 반환, 아니면 예외 발생

제약 조건

  • 알고리즘은 HS256만 지원
  • 시간은 Unix timestamp 사용

힌트

실행 버튼을 눌러 코드를 실행하세요.