🔒 토큰과 비밀키는 이 브라우저 안에서만 처리되며 서버로 전송되거나 저장되지 않습니다. 그래도 운영 환경의 실제 토큰은 가급적 만료된 것으로 확인하세요.
unidago-secret 입니다.- 로그인 응답, 쿠키, 또는
Authorization: Bearer ...헤더에서 JWT 문자열을 복사해 입력칸에 붙여넣습니다.Bearer접두어나 앞뒤 공백·줄바꿈은 자동으로 제거됩니다. - 점(
.)으로 나뉜 세 부분이 색으로 구분되고, 헤더와 페이로드가 정렬된 JSON 으로 표시됩니다. - 시간 정보에서 발급 시각(iat), 만료 시각(exp), 사용 시작 시각(nbf)을 한국시간으로 확인하고, 지금 기준으로 만료됐는지와 남은 시간을 봅니다. 남은 시간은 1초마다 갱신됩니다.
- 알고리즘이 HS256/HS384/HS512 라면 서버에서 쓰는 비밀키를 입력해 서명이 맞는지 검증합니다. 키가 Base64 로 저장되어 있다면 체크박스를 켜세요.
JWT 구조 한눈에 보기
JWT 는 헤더.페이로드.서명 세 부분으로 되어 있고, 앞의 두 부분은 JSON 을 Base64URL 로 인코딩한 것입니다. 즉 암호화가 아니라 누구나 읽을 수 있는 형태이므로 비밀번호나 주민번호 같은 민감한 정보를 페이로드에 넣으면 안 됩니다. 서명은 헤더.페이로드 문자열을 비밀키로 HMAC(또는 RSA/ECDSA) 서명한 값이라, 내용이 한 글자라도 바뀌면 검증에 실패합니다.
붙여넣은 JWT 토큰이 서버로 전송되나요?
아니요. 디코딩과 서명 검증은 모두 브라우저 안에서 JavaScript 와 Web Crypto API(crypto.subtle)로 처리됩니다. 토큰과 비밀키는 네트워크로 전송되지 않고, 브라우저 저장소에도 남기지 않습니다.
exp 값은 어떻게 읽나요? 왜 숫자인가요?
exp, iat, nbf 는 1970-01-01 00:00:00 UTC 부터 지난 초 단위 Unix 시간입니다(밀리초가 아님). 예를 들어 1767225600 은 2026-01-01 09:00:00 KST 입니다. 이 도구가 자동으로 한국시간으로 바꿔 보여줍니다.
디코딩이 잘 되면 유효한 토큰인가요?
아닙니다. 헤더와 페이로드는 단순 인코딩이라 누구나 만들어 낼 수 있습니다. 토큰이 위조되지 않았는지는 서명 검증으로만 확인할 수 있고, 실제 서비스에서는 서명·만료·발급자(iss)·대상(aud)을 서버에서 반드시 검사해야 합니다.
RS256, ES256 토큰도 검증되나요?
디코딩과 만료 확인은 모든 알고리즘에서 됩니다. 서명 검증은 공유 비밀키를 쓰는 HS256·HS384·HS512 만 지원합니다. RS·ES·PS 계열은 발급자의 공개키(JWKS)가 필요합니다.
"점이 5개" 또는 "부분이 5개"라는 오류가 나요.
다섯 부분으로 된 토큰은 서명된 JWT(JWS)가 아니라 암호화된 JWE 입니다. JWE 는 복호화 키 없이는 내용을 볼 수 없어 이 도구로 해석할 수 없습니다.