- JWT 토큰(header.payload.signature 형식)을 입력창에 붙여넣습니다.
- "디코딩" 버튼을 클릭하면 헤더와 페이로드가 보기 좋은 JSON 형태로 표시됩니다.
- iss(발급자), exp(만료 시각), sub(주체), role(권한) 등 주요 클레임 값을 확인합니다.
- 필요한 부분을 복사 버튼으로 클립보드에 저장합니다.
JWT(JSON Web Token)는 점(.)으로 구분된 세 부분으로 이뤄집니다: 헤더.페이로드.서명. 앞 두 부분은 Base64URL로 인코딩된 JSON이라 누구나 내용을 볼 수 있고, 세 번째 서명이 위조를 막습니다.
- 헤더(header): 토큰 종류와 서명 알고리즘(예: HS256).
- 페이로드(payload): 사용자 ID(sub)·권한(role)·만료(exp) 등 담긴 정보(클레임).
- 서명(signature): 비밀 키로 만든 검증값. 내용이 바뀌면 서명이 깨집니다.
이 도구는 앞 두 부분을 디코딩해 내용을 보여 줄 뿐, 내용 자체는 암호화돼 있지 않습니다. 자세한 구조는 JWT란? 가이드에 있습니다.
아래는 예시용으로 만든 토큰(비밀 키 secret, HS256)을 이 도구에 넣어 얻은 결과입니다.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTEwNDIiLCJuYW1lIjoi7ZmN6ri464-ZIiwicm9sZSI6Im1lbWJlciIsImlhdCI6MTc5MDAwMDAwMCwiZXhwIjoxNzkwMDAzNjAwfQ.KoYKQbpfRjuMnYuF3cYMwTt14d8PSput3sjms0DtNHo
| 부분 | 글자 수 | 디코딩 결과 |
|---|---|---|
| 헤더 | 36 | {"alg":"HS256","typ":"JWT"} (27바이트) |
| 페이로드 | 118 | {"sub":"user-1042","name":"홍길동","role":"member","iat":1790000000,"exp":1790003600} (88바이트) |
| 서명 | 43 | 표시하지 않음 (HMAC-SHA256 결과 32바이트) |
세 부분 36 + 118 + 43자에 구분점 2개를 더해 199자입니다. 88바이트짜리 페이로드가 118자로 늘어난 것은 Base64URL이 3바이트를 4글자로 바꾸기 때문입니다. 토큰은 요청마다 헤더에 실려 가므로, 클레임을 많이 넣을수록 모든 요청이 그만큼 무거워집니다.
iat과 exp 읽기
| 클레임 | 값 | 한국 시간 |
|---|---|---|
| iat (발급) | 1790000000 | 2026-09-21 23:13:20 |
| exp (만료) | 1790003600 | 2026-09-22 00:13:20 |
exp − iat = 3,600초이므로 유효 기간이 1시간인 토큰입니다. 날짜로 바꾸지 않아도 두 값의 차이만 보면 수명을 알 수 있습니다(86,400이면 하루, 604,800이면 일주일).
디코딩된다고 유효한 토큰은 아닙니다
| 입력 | 이 도구의 결과 |
|---|---|
| 페이로드의 role을 admin으로 바꾸고 서명은 그대로 둔 토큰 | 정상 디코딩 — role이 admin으로 표시됨 |
| 서명을 뗀 헤더.페이로드 | 정상 디코딩 |
| 앞에 "Bearer "가 붙은 토큰 | 접두어를 떼고 정상 디코딩 |
| 헤더 한 부분만 | 유효한 JWT 형식이 아닙니다 |
| 페이로드가 중간에 잘린 토큰 | 파싱 오류 |
내용을 고친 토큰도 화면에는 멀쩡하게 표시됩니다. 서버는 서명을 검증해 이런 토큰을 거부하지만, 이 도구는 서명을 확인하지 않기 때문입니다. 여기서 보이는 값은 "토큰에 이렇게 적혀 있다"는 뜻일 뿐, 그 토큰이 진짜라는 보증이 아닙니다.
- 만료 시각(exp) 확인: exp 클레임은 Unix 타임스탬프(초 단위)로 저장됩니다. 디코딩 결과에서 exp 값을 현재 시각과 비교해 토큰이 아직 유효한지 직접 검토할 수 있습니다.
- API 디버깅: 401 Unauthorized 오류가 발생할 때, 발급된 JWT 페이로드를 디코딩해 권한(role), 사용자 ID, 만료 시각 등을 빠르게 확인해 원인을 파악하세요.
- 보안 주의: 프로덕션 환경의 실제 사용자 토큰은 입력하지 마세요. 개발·테스트용 더미 토큰이나 만료된 토큰만 이 도구에서 사용하는 것이 안전합니다.
아닙니다. 이 도구는 Base64URL 디코딩만 수행합니다. 서명 검증은 서버 측에서 비밀 키나 공개 키를 사용해야 합니다.
header.payload.signature 구조(점 두 개로 구분)가 아니면 오류 메시지가 표시됩니다.
디코딩된 payload의 exp 값(만료 시각, Unix 타임스탬프)을 보면 됩니다. 이 도구는 내용만 해석해 보여주므로, 실제 만료 여부는 exp를 현재 시각과 비교하거나 타임스탬프 변환 도구로 확인하세요.
기본 JWT는 암호화가 아니라 '서명'된 것입니다. 페이로드는 Base64로 인코딩만 돼 있어 누구나 디코딩해 볼 수 있으므로, 비밀번호 같은 민감 정보를 담으면 안 됩니다. 서명은 내용 위조를 막을 뿐 내용을 숨기지는 않습니다.
아닙니다. 디코딩은 브라우저 안에서만 이뤄지며 입력한 토큰은 서버로 전송되지 않습니다. 다만 안전을 위해 실제 운영 환경의 유효한 사용자 토큰보다 테스트·만료된 토큰을 사용하는 것이 좋습니다.