JWT 디코더이란?
JWT(JSON 웹 토큰)는 현대 웹 API가 인증 및 권한 부여 클레임을 표현하는 표준 방식입니다. 서명 알고리즘을 설명하는 헤더, 사용자 ID·역할·만료 시간 같은 실제 클레임을 담는 페이로드, 토큰이 변조되지 않았음을 수신 서버가 확인할 수 있게 해주는 서명, 이렇게 세 부분으로 구성된 간결하고 독립적인 토큰입니다.
이 디코더는 헤더와 페이로드를 즉시 읽어주므로 백엔드나 CLI 도구 없이, 그리고 민감한 토큰을 제3자 서버에 붙여넣지 않고도 인증 문제를 디버깅하거나 API가 실제로 어떤 클레임을 보내는지 확인하거나 토큰 만료 시점을 확인할 수 있습니다 — 모든 것이 브라우저 안에서 로컬로 실행됩니다.
이 계산기를 사용해야 할 때
- API가 토큰을 거부하는 이유를 클레임과 만료 시간을 확인하여 디버깅
- 지원 조사 또는 사고 대응 중에 토큰의 만료 시간 확인
- SSO 또는 OAuth 공급자가 애플리케이션이 기대하는 클레임을 발급하는지 확인합니다.
- 면접 준비나 보안 과정을 위해 JWT 구조를 배우기
- 브라우저 개발자 도구나 서버 로그에서 캡처된 토큰의 내용을 이해하기 위해 확인
- 알고리즘 불일치 인증 실패를 디버깅하기 위해 토큰 간의 헤더 알고리즘 비교
단계:
- 입력창에 JWT를 붙여넣거나 "샘플 불러오기"를 클릭해 예제를 사용해 보세요.
- 입력하는 즉시 헤더와 페이로드가 자동으로 디코딩됩니다.
- iss, sub, exp, iat 등의 클레임을 읽기 쉬운 형태로 확인하세요.
- 타임스탬프 클레임(exp, iat, nbf)은 자동으로 읽기 쉬운 날짜로 변환됩니다.
공식
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
디코딩: "."으로 분리한 후 처음 두 부분을 base64Url 디코딩하고 JSON으로 파싱합니다.
검증(이 도구에서는 수행하지 않음): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
사용 사례
- 클레임을 확인해 API가 토큰을 거부하는 이유를 디버깅
- 지원 조사 중 토큰의 만료 시간 확인
- SSO 또는 OAuth 공급자가 예상한 클레임을 발급하는지 검증
- 면접 준비나 학습을 위해 JWT 구조를 배우기
- 브라우저 개발자 도구나 서버 로그에서 복사한 토큰을 빠르게 확인
주요 이점
- 백엔드나 CLI 도구 없이 어떤 JWT든 즉시 디코딩
- 모든 작업이 클라이언트 측에서 실행되어 토큰이 서버로 전송되지 않음
- 타임스탬프 클레임을 읽기 쉬운 날짜로 자동 변환
- 무료이며 가입이 필요 없고 알고리즘에 관계없이 모든 JWT에서 작동
전문가 팁
- "인증되지 않음" 오류를 디버깅할 때는 먼저 'exp'를 확인하세요 — 만료된 토큰이 가장 흔한 원인입니다
- 헤더의 'alg'를 백엔드가 기대하는 값과 대조해 알고리즘 불일치 버그를 잡으세요
- 서버 측에서 서명을 검증하지 않은 디코딩된 페이로드를 신원 증명으로 신뢰하지 마세요
- 토큰 유출 시 노출을 줄이려면 수명이 긴 JWT 대신 짧은 수명의 토큰과 리프레시 토큰을 사용하세요
피해야 할 일반적인 실수
- 디코딩된 JWT를 검증된 JWT로 착각 — 디코딩은 내용을 읽을 뿐 진위를 확인하지 않음
- 누구나 읽을 수 있다는 사실을 잊고 페이로드에 민감한 데이터(비밀번호, 비밀 키)를 저장
- 신뢰할 수 없는 온라인 디코더에 운영 환경 토큰을 붙여넣기
- 토큰 수명 문제를 디버깅할 때 'exp'(만료)와 'iat'(발급 시각)를 혼동
주요 용어 설명
- 클레임(Claim): 사용자 ID나 역할처럼 주체에 대해 주장되는 정보 단위
- 헤더(Header): 서명 알고리즘과 토큰 유형을 지정하는 JWT의 첫 번째 부분
- 페이로드(Payload): 실제 클레임을 담고 있는 JWT의 두 번째 부분
- 서명(Signature): 토큰이 변조되지 않았음을 검증하는 데 사용되는 JWT의 세 번째 부분
관련 개념
- 해시 생성기:
- UUID 생성기:
- Base64 인코더/디코더:
- JSON 포맷터:
- 비밀번호 강도 검사기:
예시
eyJhbGciOiJIUzI1NiJ9로 시작하는 토큰은 {"alg":"HS256","typ":"JWT"} 헤더로 디코딩됩니다 — 즉 이 토큰이 HMAC-SHA256으로 서명되었음을 알려줍니다.
결과 해석 방법
디코더는 JWT를 두 개의 점 구분자로 분할하고 처음 두 세그먼트를 Base64URL로 디코딩합니다. 헤더는 서명 알고리즘(예: HS256 또는 RS256)과 토큰 유형을 알려줍니다. 페이로드에는 실제 클레임(사용자 ID, 권한, 타임스탬프)이 포함됩니다.
타임스탬프 클레임(exp, iat, nbf)은 Unix 에포크에서 읽을 수 있는 날짜로 자동 변환됩니다. 'exp'에 과거 날짜가 표시되면 토큰이 만료된 것이며 대부분의 서버에서 거부합니다. 'sub'(주체) 클레임에는 일반적으로 사용자 ID가 포함되고 'iss'(발급자)는 토큰을 만든 서버를 식별합니다.
디코딩은 검증이 아님을 기억하세요. 서명 섹션이 표시되지만 비밀 키나 공개 키 없이는 검증할 수 없습니다. 디코딩된 페이로드는 정보 제공용일 뿐입니다. 서버 측 서명 검증 없이 이를 신원 증명으로 신뢰하지 마세요.

