JWT 디코더

JWT(JSON Web Token) 토큰을 붙여넣으면 Header, Payload, Signature를 자동으로 분리하고 디코딩합니다.

디코딩 결과 요약
HEADER (Algorithm & Token Type)
PAYLOAD (Claims / Data)
SIGNATURE (Verification)

클레임 상세 설명

클레임 설명

JWT 디코더 완벽 가이드

JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증과 정보 교환을 위해 널리 사용되는 개방형 표준(RFC 7519)입니다. JWT는 Header(헤더), Payload(페이로드), Signature(서명) 세 부분으로 구성되며, 각 부분은 점(.)으로 구분되어 Base64URL로 인코딩됩니다. 이 도구는 JWT 토큰을 입력하면 이 세 부분을 자동으로 분리하고 Base64URL 디코딩을 수행하여 사람이 읽을 수 있는 JSON 형식으로 변환해 줍니다.

Header에는 토큰의 유형(typ)과 서명 알고리즘(alg) 정보가 포함됩니다. 일반적으로 HS256(HMAC SHA-256), RS256(RSA SHA-256), ES256(ECDSA P-256) 등의 알고리즘이 사용됩니다. Payload에는 클레임(Claims)이라 불리는 토큰에 담긴 정보가 포함되며, 등록된 클레임(Registered Claims), 공개 클레임(Public Claims), 비공개 클레임(Private Claims)으로 분류됩니다.

등록된 클레임 중 가장 중요한 것들은 다음과 같습니다: iss(Issuer, 토큰 발급자), sub(Subject, 토큰의 주체), aud(Audience, 토큰 대상자), exp(Expiration Time, 만료 시간), nbf(Not Before, 활성 시작 시간), iat(Issued At, 발급 시간), jti(JWT ID, 고유 식별자)입니다. 이 도구는 이러한 표준 클레임을 자동으로 인식하여 한국어 설명을 제공하고, 특히 exp 클레임이 있는 경우 만료 여부와 남은 시간을 실시간으로 계산하여 표시합니다.

Signature는 Header와 Payload를 특정 비밀 키(Secret Key) 또는 공개/개인 키 쌍으로 서명한 값으로, 토큰의 무결성을 검증하는 데 사용됩니다. 이 디코더는 서명 값을 Base64URL 인코딩 상태로 표시하며, 서명 검증은 비밀 키가 필요하므로 수행하지 않습니다. 모든 디코딩 처리는 사용자의 브라우저에서만 이루어지며, 토큰 데이터는 외부 서버로 전송되지 않아 보안이 보장됩니다.

JWT의 주요 활용 분야

자주 묻는 질문 (FAQ)

Q. JWT 디코딩은 안전한가요?

A. 네, 이 도구에서의 JWT 디코딩은 100% 브라우저 내에서 수행됩니다. 입력한 토큰은 서버로 전송되지 않으며, 페이지를 닫으면 메모리에서 완전히 제거됩니다. 다만, JWT의 Payload는 암호화되지 않고 단순히 Base64URL 인코딩되어 있을 뿐이므로, 민감한 정보(비밀번호, 개인정보 등)를 JWT Payload에 직접 포함하는 것은 권장되지 않습니다.

Q. JWT 토큰이 만료되었다고 표시됩니다. 어떻게 해야 하나요?

A. JWT의 exp(만료시간) 클레임이 현재 시간보다 이전인 경우 만료 상태로 표시됩니다. 만료된 토큰은 서버에서 거부될 수 있으므로, 토큰을 재발급 받거나 리프레시 토큰(Refresh Token)을 사용하여 새 액세스 토큰을 발급받아야 합니다.

Q. 서명 검증(Signature Verification)은 할 수 없나요?

A. 서명 검증을 위해서는 토큰 서명에 사용된 비밀 키(Secret Key) 또는 공개 키(Public Key)가 필요합니다. 보안상의 이유로 이 도구에서는 서명 검증 기능을 제공하지 않으며, 서명 검증이 필요한 경우 서버 측에서 적절한 라이브러리를 사용하여 수행하는 것을 권장합니다.

Q. HS256과 RS256 알고리즘의 차이는 무엇인가요?

A. HS256(HMAC SHA-256)은 대칭 키 알고리즘으로, 서명과 검증에 동일한 비밀 키를 사용합니다. RS256(RSA SHA-256)은 비대칭 키 알고리즘으로, 개인 키로 서명하고 공개 키로 검증합니다. RS256은 공개 키를 안전하게 배포할 수 있어 마이크로서비스 환경에서 더 적합하며, HS256은 단일 서비스 환경에서 간편하게 사용할 수 있습니다.

Q. JWT에 어떤 정보를 담아야 하나요?

A. JWT Payload에는 사용자 식별 정보(user ID), 권한 정보(roles/permissions), 토큰 메타데이터(만료시간, 발급시간 등)를 담는 것이 일반적입니다. 비밀번호, 신용카드 번호 등 민감한 정보는 절대 포함해서는 안 됩니다. JWT는 암호화가 아닌 서명 방식이므로, 누구나 Payload를 디코딩하여 내용을 확인할 수 있기 때문입니다.