사용 방법
- 토큰을 붙여넣으세요. "Bearer " 접두사가 있어도 되고 없어도 돼요. 세 부분이 색으로 구분돼요.
- 디코딩된 헤더와 페이로드를 확인하세요. iat, nbf, exp 클레임은 날짜와 상대 시간으로 표시돼요.
- 서명을 검증하려면 HS256/384/512는 공유 시크릿을 입력하고, RS·PS·ES·EdDSA 토큰은 공개 키(PEM 또는 JWK)를 붙여넣으세요.
- 필요하면 디코딩된 JSON을 복사하세요.
옵션 설명
- 헤더
- 토큰에 대한 메타데이터로, 보통 alg(서명 알고리즘)와 typ가 들어 있어요. kid 필드는 어떤 키로 서명했는지 알려 줘요.
- 페이로드
- 클레임이 담긴 부분이에요. 등록된 클레임에는 sub(주체), iss(발급자), aud(대상), iat(발급 시각), nbf(유효 시작), exp(만료)가 있으며, 시간은 모두 Unix 초 단위예요.
- 서명
- 헤더와 페이로드가 변경되지 않았음을 증명해요. 검증하려면 시크릿(HMAC)이나 발급자의 공개 키(RSA, ECDSA, EdDSA)가 필요해요.
- 시크릿이 Base64로 인코딩됨
- 일부 서비스는 HMAC 시크릿을 Base64로 인코딩해 저장해요. 가지고 있는 시크릿이 인코딩된 형태라면 이 옵션을 체크하세요.
주요 클레임
| 클레임 | 의미 | 예시 |
|---|---|---|
sub |
토큰의 주체 (사용자 ID) | "1234567890" |
iss |
발급자 | "https://accounts.example.com" |
aud |
토큰을 사용할 대상 | "my-api" |
exp |
만료 시각, Unix 초 | 1790427600 |
iat |
발급 시각, Unix 초 | 1790424000 |
nbf |
유효 시작 시각, Unix 초 | 1790424000 |
jti |
고유 토큰 ID, 재사용(replay) 방지용 | "a1b2c3" |
예시
토큰 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c를 디코딩하면 헤더 {"alg":"HS256","typ":"JWT"}와 sub, name, iat(2018년 1월 18일)가 담긴 페이로드가 나와요. 시크릿 your-256-bit-secret을 입력하면 서명이 검증돼요.
자주 묻는 질문
운영 환경의 JWT를 여기에 붙여넣어도 안전한가요?
토큰은 브라우저의 JavaScript로 디코딩되며 업로드되거나 기록되지 않아요. 그래도 액세스 토큰은 비밀번호처럼 다루세요. 유효한 토큰을 가진 사람은 누구나 만료될 때까지 사용할 수 있어요.
JWT를 디코딩하면 진짜 토큰인지 알 수 있나요?
아니요. 헤더와 페이로드는 Base64URL로 인코딩만 되어 있어서 누구나 읽거나 위조할 수 있어요. 올바른 키로 서명 검증에 성공해야만 예상한 곳에서 발급한 토큰임을 알 수 있어요.
시크릿이 맞는데 검증에 실패하는 이유는 무엇인가요?
시크릿이 Base64로 인코딩되어 있는지, 끝에 공백이나 줄바꿈이 붙어 있지 않은지, 헤더의 알고리즘이 발급자가 쓰는 것과 같은지 확인하세요. 토큰이 한 글자라도 바뀌어도 서명이 깨져요.
"alg none"은 무슨 뜻인가요?
서명되지 않은 토큰이라고 주장하는 거예요. 서버는 이런 토큰을 명시적으로 허용하는 경우가 아니면 반드시 거부해야 해요. 이런 토큰을 받아들여 실제로 인증 우회가 일어난 사례도 있어요.
RS256 토큰의 공개 키는 어디서 구하나요?
ID 공급자(IdP)는 보통 /.well-known/jwks.json 경로에 키를 JWKS 형식으로 공개해요. 토큰 헤더의 kid와 일치하는 키를 복사해 JWK로 붙여넣으세요.
개인정보 보호
이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.