325Tools

JWT 디코딩 방법 — 헤더, 페이로드, 그리고 주의사항

325Tools 팀 · 업데이트 2026-06-06

로그인 버그를 들여다보면서 토큰이 만료되었는지, 올바른 클레임을 담고 있는지 확인해야 하나요? JWT 내부를 읽는 데는 몇 초면 충분합니다 — 그 방법과 함께, 디코딩이 무엇을 증명하고 무엇을 증명하지 못하는지에 대한 중요한 주의사항도 확인하세요.

JWT의 구조

JWT는 점(.)으로 구분된 세 개의 Base64URL 파트로 이루어져 있습니다.

header.payload.signature
  • Header — 알고리즘과 토큰 유형.
  • Payload — 클레임(사용자 ID, 만료 시간 exp, 발급자 iss 등).
  • Signature — 토큰이 변조되지 않았음을 증명합니다.

디코딩 방법

무료 JWT 디코더를 열고 토큰을 붙여 넣으세요. 헤더와 페이로드가 읽기 쉬운 JSON으로 표시되며, 복사할 수 있습니다.

중요: 디코딩은 검증이 아닙니다

누구든 JWT를 디코딩할 수 있습니다. 헤더와 페이로드는 Base64로 인코딩된 것일 뿐, 암호화된 것이 아닙니다. 디코딩은 서명을 확인하지 않으므로, 디코딩 결과만으로 토큰의 내용을 신뢰해서는 안 됩니다. 서명 검증은 반드시 비밀키 또는 공개키를 사용해 서버에서 수행해야 합니다. 당사의 JWT 디코더는 의도적으로 디코딩만 수행하며 서명을 검증하지 않습니다.

활용 팁

  • 페이로드는 JSON 형식입니다. JSON 포매터로 보기 좋게 정렬하거나 유효성을 검사하세요.
  • Base64URL 자체에 대해 더 알고 싶다면 Base64 인코더/디코더를 사용해 보세요.

자주 묻는 질문

토큰을 여기에 붙여 넣어도 안전한가요? 디코딩은 브라우저에서 처리되며 아무것도 업로드되지 않습니다. 그래도 실제 프로덕션 토큰은 공유하지 않는 것이 좋습니다.

서명 내용은 왜 볼 수 없나요? 서명은 읽기 위한 데이터가 아니라 검증을 위한 암호화 값이므로 사람이 읽을 수 있는 형태가 아닙니다.

디코더가 알맞은 도구가 아닐 때

디코더는 디버깅 보조 도구일 뿐 보안 검사가 아닙니다 — 다음과 같은 경우에는 다른 방법을 써야 합니다. 토큰이 진짜이고 만료되지 않았음을 확인해야 한다면, 그것은 서명 검증이며 서명 키를 가진 백엔드(josejsonwebtoken 같은 라이브러리)에서 이루어져야지 브라우저에서 해서는 안 됩니다. 토큰이 서명된 JWS가 아니라 JWE(암호화된 JWT)라면, 복호화 키 없이는 페이로드를 여기서 전혀 읽을 수 없습니다. 또 점이 없는 무작위 데이터베이스 키 같은 불투명 세션 토큰을 읽으려 한다면, 그것은 JWT가 아니므로 디코딩할 내용이 없습니다. 그런 경우에는 세션 저장소를 직접 확인하세요.

이 가이드에서 사용한 도구