JWT 파서

JSON Web Token(JWT)을 즉시 디코딩하고 검증하세요. 최고의 보안과 프라이버시를 위해 모든 처리는 브라우저에서 이루어집니다.

100% 클라이언트 측 즉시 디코딩 상세 보기
브라우저에서 로컬로 디코딩됩니다 — 토큰은 기기를 떠나지 않습니다

JWT 파서 사용 방법

1

토큰 붙여넣기

JWT를 복사하여 위 입력란에 붙여넣으세요

2

즉시 디코딩

헤더, 페이로드, 시그니처를 표시하도록 토큰이 자동으로 디코딩됩니다

3

분석

디코딩된 정보를 검토하고 토큰 유효성을 확인하세요

JWT란 무엇인가요?

JSON Web Token(JWT)은 당사자 간에 JSON 객체로 정보를 안전하게 전송하는 간결하고 자기 수용적인 방식을 정의하는 개방형 표준(RFC 7519)입니다.

JWT 구조

JWT는 점(.)으로 구분된 세 부분으로 구성됩니다:

헤더

서명에 사용되는 알고리즘 등 토큰에 대한 메타데이터를 포함합니다

페이로드

엔터티에 대한 claims(선언)와 추가 메타데이터를 포함합니다

시그니처

JWT 발신자가 주장하는 당사자가 맞는지, 메시지가 변경되지 않았는지 검증하는 데 사용됩니다

자주 묻는 질문

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

네, 이 도구를 사용하면 안전합니다. 모든 처리는 100% 브라우저에서 이루어집니다. 토큰은 어떤 서버로도 전송되지 않습니다. 다만 토큰을 자체 서버로 보낼 수 있는 다른 온라인 도구에는 주의하세요.

JWT 시그니처를 검증할 수 있나요?

HMAC 기반 토큰(HS256 등)은 시크릿 키가 있으면 시그니처를 검증할 수 있습니다. RSA 기반 토큰(RS256 등)은 공개 키가 필요합니다. 참고로 이 검증은 편의를 위해 클라이언트 측에서 수행됩니다.

JWT는 언제 만료되나요?

현재 시간이 페이로드의 "exp"(만료) claim을 지나면 JWT가 만료됩니다. 이 도구는 이러한 시간 claim을 기준으로 토큰이 만료되었는지, 활성 상태인지, 아직 유효하지 않은지 표시합니다.

JWT를 수정할 수 없는 이유는 무엇인가요?

페이로드는 수정할 수 있지만, 서명 키가 없으면 시그니처가 더 이상 유효하지 않습니다. 이것이 JWT의 보안 메커니즘입니다 - 어떤 수정이든 시그니처를 무효화합니다.

"exp"와 "nbf" claim의 차이는 무엇인가요?

"exp"(만료)는 토큰이 유효하지 않게 되는 시점을, "nbf"(not before)는 토큰이 유효해지는 시점을 지정합니다. 예를 들어 미래에 유효해지는 토큰을 만들려면 "nbf"를 설정하면 됩니다.

JWT에 민감한 데이터를 포함해야 하나요?

아니요! JWT 페이로드는 암호화가 아닌 base64 인코딩입니다. 누구나 디코딩하여 내용을 읽을 수 있습니다. JWT에 비밀번호, API 키 등 민감한 정보를 절대 포함하지 마세요.

어떤 알고리즘을 사용해야 하나요?

프로덕션 애플리케이션에서는 RS256이나 ES256 같은 비대칭 알고리즘을 사용하세요. 보안을 전혀 제공하지 않는 "none" 알고리즘은 피하세요. HS256도 사용할 수 있지만 시크릿 관리에 신경 써야 합니다.

클라이언트 측 디코딩은 어떻게 작동하나요?

JWT는 특별한 도구 없이도 디코딩 가능하도록 설계되었습니다. 헤더와 페이로드는 단순한 base64 인코딩 JSON입니다. 이 도구는 JavaScript로 이를 디코딩하여 브라우저에 표시합니다. 서버 통신이 필요 없습니다.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}