JWT 디코더
클레임 설명과 함께 JSON Web Tokens를 디코딩하고 살펴봅니다
샘플 사용해 보기
JWT를 붙여넣어 헤더, 클레임, 서명을 확인하세요.
서명이 검증되지 않았습니다. 디코딩만으로는 토큰이 진본이거나 신뢰할 수 있다는 것이 확인되지 않습니다.
토큰 유효 시간
—
- 알고리즘
- —
- 발급 시각
- —
- 유효 시작 시각
- —
- 만료 시각
- —
등록된 클레임
JWT 디코더 소개
이 JWT 디코더는 모든 JSON Web Token을 헤더, 페이로드, 서명의 세 부분으로 즉시 디코딩하는 무료 온라인 도구입니다. JSON Web Token(JWT)은 당사자 간에 정보를 간결하고 독립적인 JSON 객체로 안전하게 전달하기 위한 개방형 표준(RFC 7519)입니다. 웹 애플리케이션, API, 마이크로서비스의 최신 인증과 인가를 뒷받침하는 핵심 기술입니다.
모든 JWT는 점으로 구분된 세 개의 Base64URL 인코딩 세그먼트로 구성됩니다. 헤더는 서명 알고리즘(HS256, RS256 등)과 토큰 유형을 지정합니다. 페이로드에는 사용자 데이터, 권한, 만료 시간 등 기타 메타데이터를 담은 키-값 쌍인 클레임이 들어 있습니다. 서명은 토큰이 변조되지 않았음을 보장하며 올바른 비밀 키나 공개 키로만 검증할 수 있습니다.
이 도구는 서버를 거치지 않고 브라우저 안에서만 JWT를 디코딩하므로 토큰이 외부로 전송되거나 저장되지 않습니다. 또한 만료 상태를 확인하고, 타임스탬프를 사람이 읽을 수 있는 날짜로 변환하며, iss, sub, aud, exp, iat, nbf 같은 표준 등록된 클레임에 대한 설명도 제공합니다.
주요 기능
- 모든 JWT를 헤더, 페이로드, 서명 영역으로 즉시 디코딩
- “토큰 만료되지 않음”, “토큰 아직 활성화되지 않음”, “토큰 만료됨” 상태 배너로 만료 여부를 자동 확인
- Unix 타임스탬프(exp, iat, nbf)를 시간대와 함께 사람이 읽기 쉬운 형식으로 표시
- 모든 표준 등록 클레임(iss, sub, aud, exp, nbf, iat, jti)에 대한 설명
- 헤더, 페이로드, 서명을 각각 한 번의 클릭으로 복사하는 버튼
- 입력 지연 처리와 함께 입력하거나 붙여 넣는 즉시 실시간 디코딩
- 색상으로 구분된 영역: 헤더는 파란색, 페이로드는 보라색, 서명은 주황색
- 알고리즘 배지(HS256, RS256, ES256 등)를 상태 배너에 눈에 띄게 표시
- 빠른 테스트와 시연을 위한 샘플 토큰 제공
- 서버로 데이터를 전송하지 않는 100% 클라이언트 측 처리
사용 방법
- JWT 붙여 넣기: 애플리케이션, API 응답, 브라우저 개발자 도구, 인증 시스템에서 JSON Web Token을 복사해 입력란에 붙여 넣습니다.
- 디코딩된 영역 확인: 도구가 토큰을 헤더, 페이로드, 서명으로 즉시 나누어 서식이 적용되고 색상으로 구분된 패널에 각각 표시합니다.
- 만료 확인: 상단의 상태 배너에 토큰이 아직 유효한지 만료되었는지가 정확한 만료 일시 및 남은 시간과 함께 표시됩니다.
- 클레임 설명 읽기: iss, sub, exp, iat 같은 표준 등록 클레임에 설명이 함께 표시되어 각 필드의 의미를 이해할 수 있습니다.
- 영역 복사: 각 영역의 복사 버튼을 사용해 서식이 적용된 JSON을 클립보드에 복사하고 문서화나 디버깅에 활용합니다.
- 샘플 사용: “샘플 토큰” 버튼을 클릭해 미리 만들어 둔 JWT를 불러오면, 직접 토큰을 붙여 넣기 전에 디코더가 어떻게 동작하는지 확인할 수 있습니다.
활용 사례
- 인증 디버깅: 인증 서버가 반환한 JWT를 빠르게 살펴보고 클레임, 역할, 권한이 올바르게 설정되었는지 확인합니다.
- API 개발: API 연동 중 액세스 토큰을 디코딩해 페이로드에 예상한 사용자 ID, 스코프, 만료 시간이 들어 있는지 확인합니다.
- 보안 점검: 토큰에 민감한 데이터가 노출되어 있는지, 취약한 알고리즘(예: “none”)이나 지나치게 긴 만료 기간이 설정되어 있는지 살펴봅니다.
- 학습 및 교육: 샘플 토큰을 디코딩하고 도구가 제공하는 클레임 설명을 읽으며 JWT 구조를 이해합니다.
- 토큰 만료 문제 해결: exp 클레임을 현재 시간과 비교해 인증 실패가 만료된 토큰 때문인지 판단합니다.
- 마이크로서비스 디버깅: 서비스 간에 전달되는 토큰을 살펴보고 상위 서비스가 올바른 클레임을 가진 JWT를 제대로 된 구조로 발급하는지 확인합니다.
- OAuth 흐름 검증: OAuth 2.0과 OpenID Connect 흐름의 ID 토큰과 액세스 토큰을 디코딩해 발급자, 대상, 스코프 값을 확인합니다.
- 문서화: 디코딩된 헤더와 페이로드 JSON을 API 문서나 런북에 복사해 예상되는 토큰 구조를 보여 줍니다.
자주 묻는 질문
이 도구는 무료인가요?
예. JWT 디코더는 완전 무료이며 계정, 사용 제한, 기능을 가리는 광고가 없습니다.
내 데이터는 안전한가요?
물론입니다. 모든 디코딩은 JavaScript를 사용해 브라우저 안에서만 이루어집니다. JWT는 어떤 서버로도 전송되지 않으므로 운영 환경의 토큰도 안전하게 확인할 수 있습니다.
이 도구는 JWT 서명을 검증하나요?
아니요. 서명 검증에는 비밀 키(HMAC) 또는 공개 키(RSA/ECDSA)가 필요하며, 클라이언트 측 브라우저에서는 안전하게 수행할 수 없습니다. 서명 검증에는 서버 측 라이브러리를 사용하세요.
HS256과 RS256은 어떻게 다른가요?
HS256은 서명과 검증에 하나의 공유 비밀 키를 사용하는 대칭 알고리즘입니다. RS256은 개인 키로 서명하고 공개 키로 검증하는 비대칭 알고리즘으로 분산 시스템에 적합합니다.
암호화된 JWT(JWE)도 디코딩할 수 있나요?
이 도구는 서명된 JWT(JWS)를 디코딩합니다. 암호화된 JWT(JWE)는 복호화 키가 필요하므로 이 디코더에서 지원하지 않습니다.
내 토큰이 만료된 것으로 표시되는 이유는 무엇인가요?
이 도구는 exp(만료) 클레임을 현재 시스템 시간과 비교합니다. 만료 타임스탬프가 과거이면 토큰이 만료된 것으로 표시됩니다. 시스템 시계가 정확한지 확인하세요.
팁과 모범 사례
- 토큰 수명은 짧게 유지: 액세스 토큰의 만료 시간은 15분에서 60분으로 설정하고, 세션 유지를 위해 안전한 HTTP-only 리프레시 토큰과 함께 사용하세요.
- 페이로드에 비밀 정보를 저장하지 않기: JWT는 암호화된 것이 아니라 인코딩된 것입니다. 토큰을 가진 사람은 누구나 페이로드를 디코딩할 수 있으므로 비밀번호, 신용카드 번호 등 민감한 데이터는 절대 넣지 마세요.
- 검증은 항상 서버에서: 브라우저에서 JWT를 디코딩하는 것은 디버깅에 유용하지만, 클레임을 신뢰하기 전에 항상 백엔드에서 서명을 검증하세요.
- 분산 시스템에는 비대칭 알고리즘 사용: 여러 서비스가 비밀 키를 공유하지 않고 각자 토큰을 검증해야 한다면 RS256이나 ES256을 선택하세요.
- 토큰 크기 관리: 페이로드가 크면 요청 헤더 크기가 늘어나 API 호출이 느려질 수 있습니다. 클레임은 최소한으로 유지하고 전체 사용자 프로필을 넣는 대신 사용자 ID 같은 참조 값을 사용하세요.
- 서명 키를 정기적으로 교체: kid(Key ID) 헤더 파라미터를 사용한 키 순환 전략을 적용하면 기존 토큰을 모두 무효화하지 않고 서명 키를 전환할 수 있습니다.