본문으로 건너뛰기
Kitvoo

JWT 해석기

토큰 내용·만료 시간 확인

JWT 토큰

토큰과 키는 이 기기의 브라우저 안에서만 처리돼요. 서버로 보내거나 URL·저장소·통계에 남기지 않아요.

Payload

사용 방법

  1. [JWT 토큰] 칸에 토큰을 붙여 넣으세요. 앞에 붙은 ‘Bearer ’와 줄바꿈은 자동으로 제거돼요.
  2. Header·Payload, 알고리즘, 만료 여부가 바로 나와요.
  3. [시간 클레임] 표에서 exp·iat·nbf를 날짜로 확인하세요.
  4. 서명까지 확인하려면 [서명 검증 (선택)]에 비밀 키나 공개키를 넣고 [서명 확인]을 누르세요.

자주 묻는 질문

붙여 넣은 토큰이 어딘가에 남나요?

남지 않아요. 토큰과 키는 이 브라우저 화면 안에서만 풀고, 서버로 보내거나 URL·localStorage·통계에 넣지 않아요. 다른 도구와 달리 옵션 설정도 저장하지 않아요. 그래도 운영 환경 토큰은 확인이 끝나면 탭을 닫아 두는 편이 좋아요.

키 없이도 토큰 내용이 보이는 이유가 뭔가요?

JWT의 Header와 Payload는 Base64URL로 적어 둔 것일 뿐 암호화되지 않아서, 토큰만 있으면 누구나 읽을 수 있어요. 그래서 Payload에 비밀번호 같은 민감한 정보를 넣으면 안 돼요. 키는 토큰이 위조되지 않았는지 서명을 확인할 때만 필요해요.

어떤 알고리즘의 서명을 검증할 수 있나요?

HS256·HS384·HS512는 비밀 키로, RS·PS·ES 계열(256·384·512)과 EdDSA는 공개키로 검증해요. 공개키는 PEM(BEGIN PUBLIC KEY), 인증서(CERTIFICATE), JWK, JWKS 형식을 받고, JWKS에서는 토큰의 kid와 알고리즘에 맞는 키를 골라 써요. alg가 none인 토큰은 검증할 수 없어요.

비밀 키가 맞는데 ‘서명이 일치하지 않아요’라고 나와요.

서버가 비밀 키를 Base64로 인코딩된 값으로 쓰고 있다면 [비밀 키가 Base64로 인코딩돼 있어요]를 켜고 다시 확인해 보세요. 그래도 안 되면 토큰을 붙여 넣는 과정에서 일부가 잘리거나 바뀌었는지 확인해 주세요.

만료 시간이 이상한 날짜로 나와요.

exp·iat·nbf는 1970년 1월 1일(UTC)부터 지난 초 단위 숫자로 읽어요. 밀리초 단위로 넣은 값이면 아주 먼 미래 날짜로 나오고, 숫자가 아니면 ‘초 단위 숫자가 아니에요’라고 표시해요. 날짜는 이 기기의 시간대로 보여 줘요.

‘암호화된 토큰(JWE)이에요’라고 나와요.

점으로 나뉜 부분이 다섯 개인 토큰은 내용 자체가 암호화된 JWE예요. 이 도구는 서명된 JWS 토큰만 풀 수 있고, JWE는 복호화 키가 있는 서버나 라이브러리에서 풀어야 해요.