Global ToolBox

JWT 디코더

JWT(JSON Web Token)를 붙여넣으면 디코딩된 헤더, 페이로드, 원본 서명을 브라우저에서 바로 확인할 수 있습니다.

🔒 브라우저에서 로컬로 처리됩니다

Loading…

사용 방법

  1. 점으로 구분된 3개의 base64url 부분으로 이루어진 전체 JWT를 위 입력란에 붙여넣으세요.
  2. 붙여넣는 즉시 헤더와 페이로드가 디코딩되어 정리된 JSON 형식으로 아래에 실시간으로 표시됩니다. 별도의 버튼을 누를 필요는 없습니다.
  3. 원본 서명 부분은 참고용으로만 표시되며, 검증되거나 확인되지 않습니다.
  4. 각 패널 옆의 복사 버튼을 사용해 헤더, 페이로드, 서명을 각각 따로 복사할 수 있습니다.

기능

  • 헤더와 페이로드를 정리되고 읽기 쉬운 JSON으로 즉시 디코딩
  • 패딩이 생략된 경우를 포함해 base64url 인코딩을 올바르게 처리
  • 원본 서명 부분을 참고용으로 표시하되 검증은 시도하지 않음
  • 잘못된 토큰에 대해 충돌이나 빈 화면 대신 명확한 오류 메시지 표시
  • 100% 브라우저 내 처리 — 토큰이 브라우저 밖으로 전송되지 않음

자주 묻는 질문

이 도구가 JWT의 서명을 검증하나요?

아니요. 이 도구는 헤더와 페이로드를 읽기 쉽게 디코딩할 뿐, 서명은 절대 검증하지 않습니다. 서명 검증에는 비밀 키(HMAC 알고리즘) 또는 공개 키(RSA/ECDSA 알고리즘)가 필요하지만, 이 도구는 둘 중 어느 것도 입력받지 않습니다. 토큰이 성공적으로 디코딩되었다는 것은 형식이 올바르다는 의미일 뿐, 진짜이거나 변조되지 않았다는 뜻은 아닙니다.

제 토큰이 어딘가에 업로드되나요?

아니요. 모든 처리는 JavaScript에 내장된 base64 및 JSON API를 사용해 브라우저 내에서만 이루어집니다. JWT에는 민감한 클레임이 포함되는 경우가 많으므로, 토큰이 서버로 전송되지 않는다는 점이 중요합니다.

디코딩 시 '유효한 JSON이 아닙니다'라는 오류가 나오는 이유는 무엇인가요?

이는 토큰이 표준 JWT가 아닐 때 발생합니다. 예를 들어 토큰이 잘렸거나, 수동으로 수정되었거나, 애초에 JWT가 아닌 경우입니다. 암호화된 토큰(JWE)도 페이로드가 JSON이 아닌 암호문이기 때문에 이 방식으로 디코딩되지 않습니다.

base64와 base64url의 차이는 무엇인가요?

JWT는 base64url 인코딩을 사용합니다. 이는 URL에 안전한 base64 변형으로, '+'를 '-'로, '/'를 '_'로 바꾸고 일반적으로 끝의 '=' 패딩을 생략합니다. 이 도구는 디코딩 전에 base64url을 표준 base64로 변환하므로 패딩이 없어도 올바르게 처리됩니다.

만료되었거나 이미 사용된 토큰도 디코딩할 수 있나요?

네. 디코딩은 토큰에 이미 담긴 클레임을 읽어오는 작업일 뿐입니다. 토큰이 만료되었든, 폐기되었든, 여전히 유효하든 이러한 상태는 확인하지 않으므로 결과는 동일합니다.

관련 도구