JWT 디코더

점(.)으로 구분된 JWT의 헤더·페이로드를 Base64URL 디코딩해 JSON으로 보여주고 exp·iat 같은 주요 claim을 사람이 읽을 날짜로 함께 표시합니다.

입력값 외부 전송 없음

검토 주체 toolpado 편집 검토기준일

서명 검증은 수행하지 않으며, 입력한 토큰은 브라우저 메모리에서만 처리되고 서버로 전송되거나 저장되지 않습니다.

무엇을 처리하며 언제 쓰나요?

JWT 구조 이해하기

JWT는 점(.)으로 구분된 세 부분(헤더, 페이로드, 서명)으로 이루어져 있습니다. 헤더는 서명 알고리즘 정보를, 페이로드는 실제 claim(sub, exp 등)을 담고, 서명은 토큰이 변조되지 않았음을 증명합니다. 앞의 두 부분은 Base64URL로만 인코딩되어 있어 누구나 디코딩해 내용을 볼 수 있습니다.

디코딩과 검증은 다릅니다

토큰 내용을 읽을 수 있다는 것과 그 내용을 신뢰할 수 있다는 것은 다른 문제입니다. 서명을 검증하지 않으면 토큰이 위조되었는지 알 수 없으므로, 실제 인증 로직에서는 반드시 서버 측에서 서명을 검증해야 합니다.

인증 토큰은 민감한 정보를 담고 있을 수 있어, 이 도구는 입력값을 어디로도 전송하거나 저장하지 않고 브라우저 메모리에서만 처리합니다.

사용 방법

  1. JWT 토큰 칸에 점(.)으로 구분된 토큰 전체를 붙여 넣습니다.
  2. 디코딩하기를 누르면 헤더(Header)와 페이로드(Payload)가 JSON으로 표시됩니다.
  3. 디코딩은 서명 검증이 아니므로 exp·iss 같은 클레임을 확인하는 용도로만 쓰고, 운영 토큰은 붙여 넣지 않습니다.

처리 방식과 규격

JWT = Base64URL(헤더) + "." + Base64URL(페이로드) + "." + 서명. 앞의 두 세그먼트를 Base64URL 디코딩한 뒤 JSON으로 해석합니다.

개발 작업 예제

표준 JWT 디코딩

입력
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
결과
헤더 {"alg":"HS256","typ":"JWT"}, 페이로드 {"sub":"1234567890","name":"John Doe","iat":1516239022}
해석
iat(발급 시각) 값은 Unix seconds라 사람이 읽을 날짜로도 함께 표시됩니다.

형식이 잘못된 토큰

입력
not.a.jwt.token
결과
점으로 구분된 부분이 3개가 아니라는 오류가 표시됩니다.
해석
JWT는 반드시 헤더.페이로드.서명 3부분 구조여야 합니다.

자주 묻는 질문

이 도구로 서명을 검증할 수 있나요?

검증하지 않습니다. 비밀키나 공개키 없이 헤더·페이로드 내용만 확인하는 뷰어입니다. 서명 검증이 필요하면 백엔드 라이브러리를 사용하세요.

토큰이 서버로 전송되나요?

전송되지 않습니다. 인증 토큰처럼 민감한 값을 다루는 도구이므로 모든 디코딩은 브라우저 안에서만 처리하고 저장하지도 않습니다.

exp 값이 지났는지도 알 수 있나요?

exp·iat·nbf가 페이로드에 있으면 Unix seconds를 ISO 날짜로 변환해 함께 보여주지만, 만료 여부 판단은 현재 시각과 직접 비교해서 확인해야 합니다.

검토 근거와 공식 출처

공식 안내는 변경될 수 있습니다. 중요한 결정 전에는 링크된 기관의 최신 정보를 다시 확인하세요.