Toolzi LogoToolzi

JWT 디코더 / 인코더

JWT 토큰을 즉시 디코딩하고 분석하거나, 서명된 JWT를 생성하세요. 100% 클라이언트 처리.

모든 처리는 브라우저에서만 이루어집니다. 어떤 서버로도 데이터가 전송되지 않습니다.

JWT(JSON Web Token)란?

JWT(JSON Web Token)는 당사자 간에 정보를 안전하게 JSON 객체로 전송하기 위한 개방형 표준(RFC 7519)입니다. 웹 애플리케이션의 인증과 정보 교환에 널리 사용됩니다. JWT는 Base64URL 인코딩된 것으로 암호화가 아니기 때문에 누구나 페이로드를 디코딩할 수 있습니다. 암호화 없이 민감한 정보를 JWT에 저장하지 마세요.

JWT 구조

예제

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

HeaderPayloadSignature

Header

토큰 타입(typ)과 서명 알고리즘(alg, 예: HS256, RS256)을 포함합니다.

Payload

클레임(Claims)을 포함합니다. 사용자 정보와 만료 시간(exp), 발급 시간(iat), 주체(sub) 등의 메타데이터가 담깁니다.

Signature

헤더와 페이로드를 시크릿 키로 서명한 값입니다. 토큰이 변조되지 않았음을 검증하는 데 사용됩니다.

주요 클레임

Claim주요 클레임
iss발급자
sub주체 (사용자 ID)
aud수신자
exp만료 시간
iat발급 시간
nbf유효 시작 시간
jtiJWT 고유 식별자

자주 묻는 질문

JWT는 암호화된 토큰인가요?
아니요. 일반적인 JWT(JWS)는 서명만 되어 있고 암호화는 아닙니다. 페이로드는 Base64URL로 인코딩되어 있어 누구나 디코딩할 수 있습니다. 비밀번호 같은 민감 정보를 JWT 페이로드에 넣지 마세요.
서명 검증에 시크릿 키가 필요한 이유는?
HMAC 기반 서명(HS256 등)은 공유된 시크릿을 사용합니다. 시크릿 없이는 서명이 올바른지 확인할 수 없습니다. 페이로드 디코딩과 서명 검증은 별개의 작업입니다.
exp 클레임이 없으면 만료가 안 되나요?
exp가 없으면 토큰 자체는 만료되지 않습니다. 서버에서 토큰 블랙리스트 등 별도 무효화 메커니즘을 구현해야 합니다.
HS256과 RS256의 차이는 무엇인가요?
HS256은 모든 당사자가 공유하는 대칭 시크릿 키를 사용합니다. RS256은 비대칭 키 쌍(개인 키로 서명, 공개 키로 검증)을 사용하여 마이크로서비스나 서드파티 검증에 더 적합합니다.
JWT를 어디에 저장해야 하나요?
XSS 공격을 방어하는 HttpOnly 쿠키를 권장합니다. localStorage에 저장하면 편리하지만 XSS에 취약합니다.
Refresh Token이란?
Refresh Token은 Access Token이 만료된 후 재로그인 없이 새 Access Token을 발급받기 위한 별도의 장기 토큰입니다.
여기에 붙여넣은 JWT가 서버로 전송되나요?
아니요. 모든 디코딩과 인코딩은 브라우저 내 JavaScript로만 처리됩니다. 어떤 서버로도 전송되지 않습니다.

관련 도구