JWT Viewer
JWT 토큰을 디코딩하여 Header와 Payload를 확인합니다.
Input
Ln:1 Col:1
Output
JWT 토큰을 입력하고 디코딩 버튼을 눌러주세요.
Decoded
JWT Decoder란
JSON Web Token(JWT)은 상태 없는 인증과 권한 부여의 업계 표준입니다. RFC 7519에 정의된 JWT는 OAuth 2.0 흐름, OpenID Connect, API 인증 헤더(Bearer 토큰), 거의 모든 현대 웹 애플리케이션과 마이크로서비스 아키텍처의 세션 관리에 사용됩니다.
JWT 구조 참고서
JWT는 점으로 구분된 세 개의 Base64URL 인코딩 부분으로 구성됩니다: Header(알고리즘과 토큰 타입, 예: {"alg":"HS256","typ":"JWT"}), Payload(사용자/엔티티에 대한 클레임), Signature(토큰이 변조되지 않았음을 검증). 표준 등록 클레임에는 iss(발급자), sub(주체), aud(대상), exp(만료), iat(발급 시간), nbf(이전 불가 시간)가 포함됩니다.
중요한 보안 참고사항: JWT 페이로드는 암호화가 아닌 Base64URL 인코딩입니다. 토큰을 가로채는 사람은 누구나 비밀 키 없이 페이로드를 디코딩하고 읽을 수 있습니다. JWT 클레임에 비밀번호나 개인정보 같은 민감한 데이터를 저장하지 마세요. 토큰을 신뢰하기 전에 항상 exp 클레임을 검증하세요. 민감한 페이로드의 경우 JWE(JSON Web Encryption, RFC 7516)를 대신 사용하세요.
자주 묻는 질문
JWT는 암호화되나요?
기본 JWT(JWS)는 서명만 하며 페이로드는 Base64로 인코딩될 뿐 암호화되지 않습니다. 누구나 디코딩해서 내용을 볼 수 있으므로 민감한 정보를 넣지 마세요. 암호화가 필요하면 JWE(JSON Web Encryption)를 사용하세요.
JWT의 exp 클레임은 어떤 형식인가요?
Unix 타임스탬프(초 단위)입니다. 예: 1700000000은 2023-11-14T22:13:20Z. 밀리초가 아닌 초 단위인 점에 주의하세요.
서명 검증 없이 디코딩해도 안전한가요?
디코딩 자체는 안전하지만, 서명 검증 없이 페이로드를 신뢰하면 안 됩니다. 서버에서는 반드시 서명을 검증한 후 데이터를 사용해야 합니다. 이 도구는 클라이언트 측 디코딩 전용입니다.