Ink·tab
전체 유틸

헤더 · 페이로드 · 서명 분해

JSON Web Token 을 붙여넣으면 클레임을 한눈에 확인할 수 있게 풀어 줍니다.

헤더
{
  "alg": "HS256",
  "typ": "JWT"
}
페이로드
{
  "sub": "1234567890",
  "name": "Alice",
  "role": "admin",
  "iat": 1730000000,
  "exp": 2000000000
}
표준 클레임
만료 (exp)
2033-05-18 03:33:20 UTC7y 뒤 만료
발급 (iat)
2024-10-27 03:33:20 UTC1y 전 발급
서명 · 원문 (Base64URL)
K4kQ0QvLq8o3Rj8f3bz8d8n9Y1T1zq5b3ZcCq7GJp2k

서명은 키 없이는 검증할 수 없습니다. 여기서는 원문만 표시합니다.

브라우저 안에서만 처리됩니다. 네트워크 전송 없음.

언제 쓰나

API 응답에서 받은 JWT 를 열어 "누가 로그인했는지", "언제 만료되는지", "어떤 권한이 붙어 있는지" 확인하고 싶을 때. 서버 로그에 찍힌 이상한 토큰을 빨리 해석할 때 유용합니다.

사용법

JWT 한 줄을 입력 칸에 붙여넣으면 아래가 헤더 · 페이로드 · 서명으로 나뉘어 나타납니다. exp · iat · nbf 처럼 시간 클레임이 있으면 사람이 읽는 날짜로 변환해 주고, exp 가 지나 있으면 "만료됨" 라벨을 붙입니다.

서명 검증은 안 합니다

JWT 의 서명을 검증하려면 비밀 키 (HS256) 나 공개 키 (RS256·ES256) 가 필요하고, 브라우저에서 비밀 키를 다루는 것은 권장되지 않습니다. 이 도구는 원문 base64url 을 그대로 표시만 합니다. "실제로 유효한가" 를 판단하려면 서버 측 라이브러리 (jsonwebtoken · jose 등) 에서 검증하세요.

토큰은 어디로 가나요?

JWT 의 헤더·페이로드·서명 분해는 모두 이 브라우저 안에서 수행됩니다. 토큰은 서버로 전송되지도, 로컬 저장되지도 않습니다. 탭을 닫으면 사라집니다.

자주 묻는 질문

토큰을 여기 붙여넣어도 안전한가요?
예. 모든 분해는 이 페이지의 JavaScript 가 처리하고 외부 네트워크 요청은 발생하지 않습니다. 단 회사 시스템의 production 토큰은 회사 정책에 따라 처리하세요 (스크린샷·로그 잔존 가능).
서명 (signature) 도 검증해 주나요?
아니요. 서명 검증은 비밀 키 (HS256) 또는 공개 키 (RS256·ES256) 가 필요한데, 브라우저에서 비밀 키를 다루는 것은 보안상 권장되지 않습니다. 본 도구는 헤더·페이로드 파싱과 서명 원문 표시까지만 합니다. 검증은 서버 라이브러리 (jsonwebtoken · jose 등) 사용.
exp 클레임은 무슨 뜻인가요?
expiration time. 토큰이 만료되는 Unix epoch 초. 본 도구는 이를 사람이 읽는 날짜로 변환해 표시하고, 현재 시각보다 과거면 "만료됨" 라벨을 붙입니다. iat = issued at (발급 시각), nbf = not before (이 시각 전엔 무효).
JWT 가 만료된 것으로 표시되는 이유는?
exp 클레임이 현재 시각보다 과거이기 때문입니다. 토큰의 발급자 (auth server) 가 정의한 유효 기간이 지난 것 — refresh token 으로 새 토큰을 발급 받아야 합니다.
HS256 과 RS256 의 차이는?
HS256 (HMAC + SHA-256) 은 대칭 키 — 발급자·검증자가 같은 비밀 키 공유. 단일 시스템 내부용. RS256 (RSA + SHA-256) 은 비대칭 — 발급자가 개인 키로 서명, 누구나 공개 키로 검증. 외부 시스템 (OAuth · OpenID Connect) 표준.