Skip to content
JWT 디코더
Tools

JWT 디코더

신규

JSON Web Token을 디코딩하고 클레임을 확인하며 HS256 서명을 로컬에서 검증.

A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.

Runs entirely in your browser. Nothing is uploaded.

브라우저에서 모든 JSON Web Token 디코드하기

JWT 디코더는 불투명한 eyJ… 문자열을 즉시 읽기 가능한 JSON으로 변환합니다. JSON Web Token을 붙여넣으면 점을 기준으로 분할하고, 헤더와 페이로드를 Base64URL 디코딩하여 나란히 보기 좋게 표시합니다 — 원시 서명은 별도로 표시됩니다. 인증 흐름 디버깅, API 응답의 토큰 검사, 백엔드가 발행하는 클레임 확인에 가장 빠른 방법입니다.

토큰의 각 부분은 색상으로 구분됩니다 — 헤더, 페이로드, 서명 — 따라서 header.payload.signature의 세 섹션을 한눈에 구분할 수 있습니다. 계정 불필요, 서버 업로드 없음, 일일 디코드 제한 없음.

클레임 읽기 및 만료 시간 한눈에 확인

디코더는 RFC 7519에 정의된 표준 등록 클레임 — iss, sub, aud, exp, nbf, iat, jti — 을 명확한 테이블에서 각각의 쉬운 설명과 함께 강조 표시합니다. 세 개의 시간 클레임은 Unix 에포크 초 단위로 표시되어 잘못 읽기 쉽기 때문에, 도구가 로컬 날짜 및 시간으로 변환하고 '5분 전에 발급됨' 또는 '59분 후 만료'와 같은 상대적 힌트를 추가합니다.

가장 중요하게는, JWT 디버거를 열 때 항상 묻는 질문에 답해줍니다: 이 토큰이 아직 유효한가요? exp 클레임을 현재 시간과 비교하고, nbf도 고려하여 토큰을 자동으로 유효 또는 만료됨으로 표시합니다.

서명 검증 — HS256, RS256, ES256

디코딩은 토큰이 무엇을 주장하는지 보여주고, 검증은 신뢰할 수 있음을 증명합니다. 이 도구는 JWT 서명 검증기이기도 합니다: 헤더에서 알고리즘을 읽고 브라우저의 Web Crypto API를 사용하여 로컬에서 서명을 검증합니다. HS256, HS384, HS512의 경우 공유 HMAC 시크릿을 제공하고, RS256, PS256, ES256(및 384/512 변형)의 경우 PEM 형식의 발급자 공개 키를 붙여넣습니다.

계산이 기기에서 실행되므로, 토큰, 시크릿, 키를 어떤 서버에도 보내지 않고 토큰이 진본임을 확인할 수 있습니다. 녹색 체크 표시는 서명이 일치함을 의미하고, 빨간 X 표시는 토큰이 변경되었거나 잘못된 키를 사용 중임을 의미합니다.

JWT 구성 및 인코딩도 가능

반대 방향이 필요한가요? 내장된 JWT 인코더로 처음부터 토큰을 만들 수 있습니다. 헤더와 페이로드를 JSON으로 편집하고, HMAC 알고리즘을 선택하고, 시크릿을 입력하면 올바르게 서명된 header.payload.signature 토큰이 생성되어 요청이나 테스트에 바로 복사할 수 있습니다. 편리한 바로 가기 버튼으로 최신 iatexp 클레임을 추가하여 테스트 토큰에 현실적인 타임스탬프를 설정할 수 있습니다.

이로써 UtiloKit은 JWT 디코더와 인코더가 결합된 도구가 됩니다 — API에서 돌아오는 토큰을 검사하고 전송할 새 토큰을 만드는 작업 모두 같은 곳에서 처리합니다. 서버 개입 없이, 계정 없이 jwt.io와 동일한 워크플로입니다.

jwt.io, token.dev, jwtdecode.com과의 비교

jwt.io는 웹에서 가장 잘 알려진 JWT 도구입니다 — Auth0가 개발하고, 문서에서 광범위하게 링크되며, 수백만 명의 개발자가 신뢰합니다. 주요 제한은 개인정보 보호입니다: jwt.io는 일부 구성에서 토큰을 Auth0 서버로 전송합니다.

token.devjwtdecode.com은 기본 디코딩을 지원하지만 PEM 키를 사용한 RS256/ES256 서명 검증은 지원하지 않습니다 — Auth0, Google, Microsoft Azure AD, Okta 및 대부분의 엔터프라이즈 OIDC 공급자가 사용하는 알고리즘입니다.

이 UtiloKit 디코더는 브라우저에서 이 모든 것을 처리합니다: 디코딩, 만료 확인, HS/RS/PS/ES 알고리즘 패밀리 전체의 완전한 서명 검증 — 무료, 계정 없음, 일일 제한 없음, 기기를 벗어나는 데이터 없음.

JWT 보안: 토큰이 보호할 수 있는 것과 없는 것

JWT는 무결성을 위해 서명되었지, 기밀성을 위해 암호화된 것이 아닙니다. 토큰을 가진 누구든지 페이로드의 모든 클레임을 읽을 수 있습니다 — Base64URL 인코딩은 쉽게 역변환할 수 있으며, 이 디코더가 그것을 보여줍니다. 따라서 페이로드에는 민감하지 않은 식별자만 포함해야 합니다: 사용자 ID, 역할, 이메일. JWT 페이로드에 비밀번호, 결제 정보, API 키를 절대 넣지 마세요.

서명은 변조로부터 보호합니다: 공격자가 페이로드의 단 한 문자라도 수정하면 서명이 더 이상 일치하지 않으며, 올바른 키로 검증하는 서버는 토큰을 거부합니다. 고전적인 alg: none 공격은 알고리즘이 사용되지 않는다고 주장하여 이를 우회합니다 — 잘 알려진 취약점(CVE-2015-9235)으로, 모든 프로덕션 JWT 라이브러리가 차단해야 합니다.

exp를 사용하여 짧은 토큰 수명을 유지하고, HTTPS로 전송하고, 메모리나 httpOnly 쿠키(localStorage가 아닌)에 저장하고, 모든 요청에서 서명을 검증하세요. 프로덕션에 배포하기 전에 이 무료 도구로 토큰을 디코딩하고 검사하여 이러한 속성이 올바르게 설정되어 있는지 확인하세요.

Frequently asked questions

JWT(JSON Web Token)란 무엇인가요?

JWT는 두 당사자 간에 서명된 정보를 전달하는 컴팩트하고 URL 안전한 방법입니다 — 대부분 로그인 토큰으로 사용됩니다. 점으로 연결된 세 개의 Base64URL 부분으로 구성됩니다: header.payload.signature. 헤더는 서명 알고리즘을 나타내고, 페이로드는 클레임(데이터)을 보유하며, 서명으로 수신자가 토큰이 변조되지 않았음을 확인할 수 있습니다. JWT는 OAuth 2.0, OpenID Connect, Auth0, Firebase, Supabase, AWS Cognito 및 대부분의 현대적인 인증 시스템에서 사용됩니다.

JWT를 어떻게 디코딩하나요?

두 개의 점에서 토큰을 분리하고 처음 두 부분을 Base64URL 디코딩합니다. 헤더와 페이로드는 디코딩 후 일반 JSON입니다; 세 번째 부분(서명)은 바이너리로 유지됩니다. 이 도구는 즉시 수행합니다 — 토큰을 붙여넣으면 디코딩된 헤더와 페이로드가 정형화되어 나타납니다. 아무것도 전송되지 않습니다; 디코딩은 브라우저에서 실행됩니다. JWT를 디코딩하는 데 시크릿이나 개인 키가 필요하지 않습니다.

JWT를 온라인에서 디코딩하는 것이 안전한가요?

이 도구를 사용하면, 네 — 모든 바이트가 JavaScript를 사용하여 브라우저에서 로컬로 디코딩되며, 토큰은 서버, 로그 또는 네트워크 요청에 절대 닿지 않습니다. 백엔드 없이, 토큰 내용에 대한 분석 추적 없이 모두 클라이언트 측에서 처리됩니다. 그렇더라도 JWT는 여전히 자격 증명입니다: 신뢰하지 않는 웹사이트에 실제 프로덕션 토큰을 붙여넣지 마세요.

JWT 안에는 무엇이 있나요?

세 부분이 있습니다. 헤더는 유형과 서명 알고리즘을 설명하는 JSON입니다(예: {"alg":"HS256","typ":"JWT"}). 페이로드는 클레임을 보유하는 JSON입니다 — 등록된 것(sub, exp, iat…)과 역할이나 사용자 ID 같은 사용자 정의 데이터 모두 포함됩니다. 서명은 변경되지 않았음을 증명하는 헤더와 페이로드의 키 해시입니다. 서명만 시크릿이나 키가 필요합니다; 헤더와 페이로드는 Base64URL로만 인코딩되었을 뿐 암호화되지 않았습니다.

JWT가 만료되었는지 어떻게 확인하나요?

exp 클레임을 읽으세요 — 초 단위의 Unix 타임스탬프입니다. exp가 현재 시간보다 이전이면 토큰이 만료된 것이며 거부해야 합니다. 이 디코더는 exp를 읽기 가능한 날짜로 변환하고, '3시간 전 만료' 또는 '59분 후 만료'와 같은 상대적 시간을 표시하며, 토큰을 자동으로 유효 또는 만료됨으로 표시합니다.

JWT 서명을 어떻게 검증하나요?

헤더를 디코딩하여 alg를 읽고, header.payload의 서명을 재계산하여 비교합니다. HS256/384/512의 경우 공유 시크릿이 필요하고, RS256, PS256 또는 ES256의 경우 PEM 형식의 발급자 공개 키가 필요합니다. 이 도구는 Web Crypto API를 사용하여 모두 로컬에서 검증합니다 — 일치하는 알고리즘을 선택하고 시크릿 또는 공개 키를 붙여넣으면 서명이 진본인지 보고합니다.

시크릿 없이 JWT를 디코딩할 수 있나요?

네. 디코딩은 Base64URL로 인코딩된 헤더와 페이로드만 읽으므로 키가 전혀 필요하지 않습니다 — 이것이 JWT 페이로드에 시크릿을 절대 넣지 말아야 하는 이유입니다. 시크릿이나 공개 키는 서명을 검증할 때만 필요합니다. 디코딩은 토큰이 무엇을 주장하는지 알려주고, 검증은 그것을 믿어야 하는지 알려줍니다.