본문 바로가기

JWT 디코더

JWT 토큰의 헤더·페이로드를 브라우저에서 안전하게 디코딩합니다. 토큰은 서버로 전송되지 않습니다.

브라우저에서 로컬 처리 · 서버 업로드 없음
이 도구는 토큰을 읽기 좋게 디코딩만 하며 서명은 검증하지 않습니다. 모든 처리는 브라우저에서만 이루어지지만, 실제 운영 토큰·시크릿은 붙여넣지 않는 것이 안전합니다.

header.payload.signature 형태의 점(.)으로 구분된 토큰을 붙여넣으세요.

JWT 디코더 소개

JWT 디코더는 점으로 나뉜 토큰을 헤더와 페이로드로 풀어 보여 주고, 시간 관련 값은 한국 시간으로 바꿔 표시합니다. 로그인이 자꾸 풀리는 원인을 찾거나 백엔드가 실어 보낸 권한 값이 실제로 무엇인지 확인할 때 씁니다.

JWT는 헤더.페이로드.서명 세 조각으로 이루어지고, 앞의 두 조각은 Base64URL로 인코딩되어 있을 뿐 암호화된 것이 아닙니다. 토큰을 손에 넣은 사람은 누구나 내용을 읽을 수 있다는 뜻입니다. 이 사실은 자주 오해받는 부분이라 분명히 해 둘 필요가 있습니다. 페이로드에 비밀번호나 주민번호 같은 값을 담으면 그대로 노출됩니다. JWT의 안전성은 내용을 감추는 데서 오는 것이 아니라, 서명 덕분에 내용을 고치면 들킨다는 데서 옵니다. 시간 값도 규칙이 있습니다. iat는 발급 시각, exp는 만료 시각, nbf는 이 시각 전에는 쓸 수 없다는 뜻이며 모두 Unix 타임스탬프(초)입니다.

이 도구는 서명을 검증하지 않습니다. 검증에는 발급 서버의 비밀키나 공개키가 필요하고, 그 작업은 반드시 서버에서 이루어져야 합니다. 브라우저에서 서명을 확인했다고 해서 보안이 되는 것이 아닙니다. 한 가지 더, 디코딩이 기기 안에서만 이루어진다 해도 운영 중인 실제 토큰을 아무 웹 도구에나 붙여넣는 습관은 권하지 않습니다. 토큰은 그 자체로 로그인 자격이라서, 화면 공유 중이거나 클립보드가 동기화되는 환경에서는 그대로 새어 나갈 수 있습니다. 확인이 필요하면 만료된 토큰이나 개발 환경 토큰을 쓰세요.

사용 방법

  1. 디코딩할 JWT 토큰을 위 입력창에 붙여넣으세요. xxxxx.yyyyy.zzzzz 형태의 세 부분으로 이루어진 문자열입니다.
  2. 입력하면 즉시 헤더(Header)페이로드(Payload)가 보기 좋은 JSON으로 디코딩됩니다.
  3. exp·iat·nbf 같은 시간 클레임은 한국 시간(KST)으로 자동 변환되어 표시됩니다.
  4. 필요한 값을 확인한 뒤 각 영역의 복사 버튼으로 결과를 가져가세요.

자주 묻는 질문

이 도구가 서명(signature)을 검증하나요?
아니요. 이 도구는 토큰을 읽기 좋게 디코딩만 할 뿐, 서명의 유효성(위변조 여부)은 검증하지 않습니다. 서명 검증에는 발급 서버의 비밀키 또는 공개키가 필요하며, 그것은 반드시 서버 측에서 수행해야 합니다.
JWT가 암호화되어 있나요? 페이로드를 누구나 볼 수 있나요?
일반적인 JWT(JWS)는 암호화가 아니라 Base64URL 인코딩일 뿐이라 누구나 디코딩해 내용을 읽을 수 있습니다. 따라서 페이로드에 비밀번호 같은 민감 정보를 담으면 안 됩니다. 토큰의 안전성은 서명을 통한 위변조 방지에서 나옵니다.
세 번째 조각(서명)은 왜 보여주지 않나요?
서명은 사람이 읽을 수 있는 내용이 아니라 비밀키로 계산한 바이너리 값을 인코딩한 것이라, 풀어 봐야 의미 없는 문자열만 나옵니다. 이 값은 내용이 변조되지 않았는지 검증할 때만 쓰이며 그 검증은 서버에서 이루어집니다.
exp(만료) 시간은 어떻게 해석하나요?
exp는 토큰 만료 시각을 Unix 타임스탬프(초)로 담고 있습니다. 현재 시각이 이 값을 지나면 토큰은 만료된 것으로 간주되며, 이 도구는 만료 시 경고를 표시합니다. iat는 발급 시각, nbf는 이 시각 이전에는 사용할 수 없음을 뜻합니다.

관련 가이드