JWT 디코더 — 온라인에서 토큰 헤더·페이로드 읽기
JSON Web Token을 디코딩해 헤더와 페이로드를 JSON으로 읽고 exp·iat·iss 같은 클레임을 살펴보세요. 서명을 검증하거나 신뢰하지 않고 인증을 디버깅합니다.
예시
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiQWRhIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// header
{ "alg": "HS256", "typ": "JWT" }
// payload
{ "sub": "123", "name": "Ada", "iat": 1516239022 }점으로 구분된 세 부분은 header.payload.signature이며, 여기서는 앞의 두 부분만 디코딩합니다.
사용 방법
- 입력 상자에 JWT를 붙여넣습니다.
- 디코딩된 헤더와 페이로드를 확인합니다.
- 필요한 클레임을 검토합니다.
- 원하는 섹션을 복사합니다.
JWT Decoder 소개
JWT 디코더는 JSON Web Token을 두 개의 점에서 분리해 앞의 두 부분 — 헤더와 페이로드 — 을 Base64URL로 디코딩해 읽기 쉬운 JSON으로 만듭니다. 헤더는 서명 알고리즘(alg)과 토큰 타입을 보여주고, 페이로드는 주체(sub), 만료(exp), 발급 시각(iat) 같은 클레임을 담습니다. 토큰에 무엇이 들어 있는지 들여다보는 디버깅 도구입니다. 세 번째 부분인 서명은 일부러 확인하지 않으므로, 디코딩된 토큰만으로는 그것이 진짜인지 전혀 알 수 없습니다.
사양
| 구조 | header.payload.signature (점으로 구분된 3개 부분) |
|---|---|
| 인코딩 | Base64URL (URL 안전, 패딩 없음) |
| 서명 | 표시용으로만 디코딩 — 절대 검증하지 않음 |
| 주요 클레임 | sub, iss, aud, exp, iat, nbf |
팁과 주의점
- 이 도구는 토큰을 디코딩할 뿐 서명을 검증하지 않습니다 — 디코딩만으로 토큰 내용을 신뢰하지 말고, 서버에서 비밀 키나 공개 키로 검증하세요.
- 아직 유효한 운영 환경 토큰은 절대 붙여넣지 마세요: 토큰을 본 사람은 누구나 만료 전까지 재사용할 수 있습니다.
- exp와 iat는 초 단위(밀리초 아님) Unix 타임스탬프입니다 — 타임스탬프 도구로 날짜로 변환하세요.
- JWT는 표준 Base64가 아니라 Base64URL을 사용하므로 각 부분에 - 와 _ 가 들어가고 = 패딩이 없습니다.
주요 기능
- JWT 헤더 디코딩 (alg, typ)
- 페이로드 클레임을 읽기 쉬운 JSON으로 디코딩
- 들여쓰기가 적용된 JSON 출력
- 헤더 또는 페이로드를 따로 복사
- 서명이 검증되지 않음을 명확히 안내
이럴 때 사용하세요
- 요청이 왜 거부되는지 토큰의 exp를 읽어 만료 여부를 확인할 때.
- 토큰이 어떤 사용자나 권한 범위를 나타내는지 sub와 클레임을 살펴 확인할 때.
- 발급자(iss)와 대상(aud)이 API가 기대하는 값과 일치하는지 검증할 때.
- 인증 서버가 실제로 발급한 클레임을 비교하며 로그인 흐름을 디버깅할 때.
이 도구는 브라우저에서 실행됩니다. 파일과 텍스트는 서버로 업로드되지 않으며, 입력 내용을 저장하지 않습니다.
자주 묻는 질문
이 도구가 JWT 서명을 검증하나요?+
아니요. 이 도구는 헤더와 페이로드만 디코딩합니다. 서명을 검증하지 않으므로 디코딩만으로 토큰을 신뢰해서는 안 되며, 검증은 서명 키를 가진 서버에서 이루어져야 합니다.
exp와 iat 값을 어떻게 읽나요?+
1970년 이후의 초 단위 Unix 타임스탬프입니다. 그 숫자를 Unix 타임스탬프 변환기에 넣으면 사람이 읽을 수 있는 날짜를 볼 수 있으며, exp가 과거라면 토큰은 만료된 것입니다.
토큰이 디코딩되지 않는 이유는 무엇인가요?+
JWT는 점으로 구분된 세 개의 Base64URL 부분으로 이루어져야 합니다. 부분이 빠졌거나 잘못된 문자가 들어 있으면 오류가 표시됩니다.
헤더의 alg 필드는 무엇을 뜻하나요?+
토큰 서명에 사용된 알고리즘을 가리키며, HS256(HMAC)이나 RS256(RSA) 등이 있습니다. 서버가 서명을 어떻게 검증할지 알려주는 값이며, 이 디코더가 직접 처리하는 대상은 아닙니다.