JWT 디코더
JWT 헤더와 페이로드 디코딩, 만료 확인 — 완전 오프라인
로컬 실행
loading…
이 도구에 대해
JSON Web Token은 점으로 이어진 세 개의 Base64URL 구간, 즉 헤더, 페이로드, 서명으로 이루어집니다. 이 디코더는 토큰을 분리해 헤더와 페이로드를 포매팅된 JSON으로 보여주고, 등록된 시간 클레임(iat, exp, nbf)을 사람이 읽을 수 있는 날짜로 표시하며, 토큰 만료 여부를 한눈에 알려줍니다.
디코딩은 검증이 아닙니다. Base64URL은 암호화가 아니라 인코딩이므로, JWT를 손에 넣은 누구나 페이로드를 읽을 수 있습니다. 그래서 아무 웹사이트에나 토큰을 붙여넣는 것은 보통 나쁜 생각인데, 이 페이지는 예외입니다. 디코딩이 전부 브라우저 안에서 이루어지고 토큰이 전송되는 일이 없기 때문입니다. 비밀 키나 공개 키를 이용한 서명 검증은 이 오프라인 디코더의 범위에서 의도적으로 제외했습니다.
앞에 붙은 "Bearer " 접두사는 자동으로 제거되므로, Authorization 헤더에서 그대로 붙여넣어도 됩니다.
자주 묻는 질문
- 프로덕션 토큰을 여기에 붙여넣어도 안전한가요?
- 토큰은 브라우저 안에 머뭅니다. 이 페이지는 입력값으로 어떤 네트워크 요청도 하지 않으며, 개발자 도구의 네트워크 탭에서 직접 확인할 수 있습니다. 그래도 습관으로 유효한 토큰은 비밀번호처럼 다루세요. 스크린샷을 공유할 때는 만료된 토큰이나 테스트 토큰을 쓰는 것이 좋습니다.
- 왜 제 토큰이 디코딩되지 않나요?
- 점으로 구분된 구간이 정확히 세 개인지, 복사하다 줄바꿈이 끼어들지 않았는지 확인하세요. 불투명(opaque) 액세스 토큰(예: 많은 GitHub, Google 토큰)은 애초에 JWT가 아닙니다. JSON을 담은 적 없는 문자열은 아무리 디코딩해도 열리지 않습니다.
- iat, exp, nbf는 무슨 뜻인가요?
- RFC 7519의 등록된 클레임으로, 모두 Unix 초입니다. iat는 토큰 발급 시각, exp는 유효 기간이 끝나는 시각, nbf("not before")는 토큰이 받아들여질 수 있는 가장 이른 시점입니다. 이 도구는 각각을 읽기 좋은 날짜로 변환하고 exp를 현재 시각과 비교합니다.
- 이 도구로 서명을 검증할 수 있나요?
- 아니요. 그리고 어차피 온라인 도구의 초록색 체크 표시를 보안 결정에 신뢰해서는 안 됩니다. 서명은 백엔드에서 잘 관리되는 라이브러리(jose, jsonwebtoken, PyJWT)로 발급자의 실제 키에 대해 검증하세요.