CalKit

JWT 디코더

JWT 토큰을 디코딩합니다.

개요

JWT(JSON Web Token)를 디코딩하여 헤더, 페이로드, 서명 정보를 확인합니다. 인증 토큰 디버깅, 만료 시간 확인, 클레임 검증에 활용됩니다.

계산 공식

JWT 구조: Header.Payload.Signature 형식의 점(.)으로 구분된 3개 부분으로 구성됩니다. Header와 Payload는 JSON을 Base64URL로 인코딩한 것입니다. 디코딩 과정: 점(.)으로 3부분을 분리 → 각 부분을 Base64URL 디코딩 → Header/Payload는 JSON 파싱하여 표시. 서명 검증: HMAC-SHA256의 경우 HMAC(base64url(header) + '.' + base64url(payload), secret)과 Signature를 비교합니다.

사용 방법

  1. 1JWT 토큰 문자열을 입력합니다.
  2. 2디코딩된 헤더(알고리즘, 타입 등)를 확인합니다.
  3. 3디코딩된 페이로드(클레임: sub, iat, exp 등)를 확인합니다.
  4. 4만료 시간(exp)이 유효한지 확인합니다.

활용 팁

  • JWT 페이로드는 인코딩된 것이지 암호화된 것이 아닙니다. 민감한 정보를 페이로드에 넣지 마세요.
  • exp(만료시간) 클레임은 유닉스 타임스탬프(초)로 표현됩니다.
  • iat(발급시간), nbf(유효 시작시간), iss(발급자), aud(대상) 등 표준 클레임을 활용하세요.
  • 서명 검증 없이 페이로드만 확인하는 것은 보안 검증이 아닙니다.
  • 토큰 크기가 커지면 HTTP 헤더 제한에 걸릴 수 있으므로 페이로드를 최소화하세요.

자주 묻는 질문

Q. JWT는 무엇이고 왜 사용하나요?

JWT(JSON Web Token)는 당사자 간 정보를 안전하게 전달하기 위한 컴팩트하고 URL-safe한 토큰 형식입니다. 주로 웹 애플리케이션의 인증(로그인)과 정보 교환에 사용됩니다. 서버가 상태를 저장하지 않아도(stateless) 되므로 확장성이 좋습니다.

Q. JWT가 탈취되면 어떻게 되나요?

JWT가 탈취되면 만료될 때까지 공격자가 해당 토큰으로 인증할 수 있습니다. 이를 방지하기 위해 짧은 만료 시간 설정, HTTPS 사용, HttpOnly 쿠키 저장, 리프레시 토큰 활용, 토큰 블랙리스트 등의 대책을 사용합니다.

Q. HS256과 RS256의 차이는 무엇인가요?

HS256(HMAC-SHA256)은 대칭 키를 사용하여 서명과 검증에 같은 시크릿 키를 씁니다. RS256(RSA-SHA256)은 비대칭 키를 사용하여 개인 키로 서명하고 공개 키로 검증합니다. 마이크로서비스 환경에서는 공개 키만 배포하면 되는 RS256이 더 안전합니다.

관련 계산기