온라인 JWT 디코더
헤더·페이로드·서명 확인
JWT를 붙여넣어 Base64URL 헤더와 페이로드를 보기 좋은 JSON으로 디코딩합니다. 서명 검증 없이 클레임, 역할, 만료 시간을 확인합니다.
디코딩은 클레임만 보여 줍니다. 서명 검증이 아니며, 토큰은 브라우저에만 머무르고 업로드되지 않습니다.
- 세그먼트0/3
이 도구는 무엇인가요?
JWT의 헤더·페이로드를 Base64URL 디코딩해 보기 좋은 JSON으로 보여 줍니다. OAuth/OIDC 액세스 토큰, 세션 클레임, API 인가 디버깅에 흔히 쓰입니다.
디코딩은 검사용입니다. JWKS 조회, iss/aud 검증, 알고리즘 화이트리스트는 하지 않습니다. 고급 패널에서 HMAC 시크릿으로 HS256/HS384/HS512만 선택 검증할 수 있으며, 이것도 완전한 운영 검증기는 아닙니다.
클레임 형태, kid, 역할/스코프, exp/iat/nbf를 서버에 보내지 않고 확인할 때 사용하세요.
자주 쓰는 경우
- API가 Bearer 토큰을 거절하는 원인 확인(만료
exp,aud형태, 예상 밖alg) - OAuth/OIDC 연동 중 IdP 클레임(
sub, 역할, 스코프) 점검 - 앱 JWKS 검증 전에 헤더
kid·alg확인
사용 방법
header.payload.signature형태의 JWT를 붙여넣습니다.Bearer접두어는 자동 제거되며 결과가 바로 갱신됩니다.- 세그먼트(
n/3),alg,exp/iat/nbf배지(로컬·ISO·상대)를 확인합니다. - 헤더·페이로드 JSON을 각각 복사합니다.
- 필요하면 고급에서 HMAC 시크릿으로 HS*만 검증합니다. 운영 신뢰 판단은 라이브러리·JWKS를 사용하세요.
예시
| 입력 / 설정 | 출력 | 메모 |
|---|---|---|
| Sample (HS256) | alg: HS256, sub/role, 시간 클레임 | 고급 검증 시크릿: utill-sample-secret |
alg=none 토큰 | 헤더 none + 경고 | 무서명 — 신뢰 금지 |
Bearer eyJ… | 접두어 제거 후 동일 디코드 | Authorization 헤더 붙여넣기 |
과거 exp | JSON + 만료 배지 | 만료여도 클레임 열람 가능 |
실무에서 흔한 실수
- 디코드 ≠ 검증. 예쁜 JSON만으로 무결성·진위를 증명할 수 없습니다.
alg=none·알고리즘 혼동 공격에 대비해 운영에서는 허용 알고리즘을 고정하세요.- 기본 경로는 디코드만 두고 HS* 검증은 접어 두어, 디코드와 검증을 혼동하기 어렵게 했습니다.
- 실제 액세스 토큰을 공유 URL에 넣지 마세요.
참고자료
최종 검토: 2026-07-26
자주 묻는 질문
- JWT 디코딩과 서명 검증의 차이는?
- 디코딩은 Base64URL 헤더·페이로드를 JSON으로 보여 줄 뿐입니다. 서명 검증은 키로 서명을 확인하는 별도 단계이며, 기본 UI는 디코드만 합니다(고급에서 HS* HMAC만 선택 검증).
- alg=none 토큰은 왜 위험한가요?
- 서명이 없어 누구나 클레임을 위조할 수 있습니다. 운영 검증기는 무서명 JWT를 거부해야 합니다.
- Bearer 접두어가 있어도 되나요?
- 예. `Bearer ` 접두어는 자동으로 제거한 뒤 디코딩합니다.
- 만료된 토큰도 볼 수 있나요?
- 예. `exp`/`iat`/`nbf`를 로컬·상대 시간과 함께 표시하며 만료 배지도 보여 줍니다.