JWT 디코더
JWT(JSON Web Token)의 헤더와 페이로드를 사람이 읽을 수 있게 풀어 보여줍니다. exp·iat·nbf 같은 시간 클레임은 날짜로 바꿔 만료 여부까지 함께 표시합니다.
토큰 입력
유효 기간
헤더 (header)
페이로드 (payload)
서명 (signature)
위 값은 토큰의 세 번째 조각을 그대로 보여준 것입니다. 검증한 결과가 아닙니다. 이 도구는 서명을 계산하거나 대조하지 않습니다.
JWT 디코더는 점(.)으로 이어진 JWT 토큰을 헤더·페이로드·서명 세 조각으로 나눠 읽어 줍니다. base64url 로 감싸인 앞 두 조각을 풀어 JSON 으로 보여 주고, iat·nbf·exp 같은 시간 값은 사람이 읽을 수 있는 날짜로 바꿔 남은 기간까지 계산합니다. 로그인이 왜 풀렸는지, 토큰에 어떤 값이 담겨 있는지 확인할 때 씁니다.
JWT디코더 사용 방법
- 토큰 입력 칸에 JWT 를 붙여넣습니다. 형태가 궁금하다면 예제 토큰 넣기 버튼으로 공개 샘플을 넣어 볼 수 있습니다.
- 디코드 버튼을 누르면 아래에 결과가 펼쳐집니다.
- 유효 기간 칸에서 발급 시각·유효 시작·만료 시각과 상태를 확인합니다. 만료됐는지, 아직 사용 시점이 오지 않았는지 배지로 표시됩니다.
- 헤더에서 서명 알고리즘(alg)과 토큰 종류(typ)를, 페이로드에서 사용자 식별자나 권한 같은 실제 담긴 값을 확인합니다.
- 지우기 버튼을 누르면 입력과 결과가 모두 비워집니다.
지원 형식과 입력 조건
- 입력 형식
- header.payload.signature 세 조각을 점으로 이은 JWT
- 해독 범위
- 헤더와 페이로드 (base64url 디코드)
- 서명
- 세 번째 조각을 그대로 보여 줄 뿐, 계산하거나 대조하지 않습니다
- 시간 클레임
- iat(발급) / nbf(유효 시작) / exp(만료) 를 날짜로 변환하고 남은 기간을 계산
- 처리 위치
- 브라우저 안에서만 해독하며 토큰을 서버로 전송하지 않습니다
이 도구는 서명을 검증하지 않습니다
- 서명 검증에는 발급자만 아는 비밀키(또는 공개키)가 필요합니다. 그 키를 웹 페이지에 입력하는 것은 위험하므로 이 도구는 검증을 시도하지 않습니다.
- 따라서 화면에 내용이 잘 보인다고 해서 그 토큰이 진짜라는 뜻은 아닙니다. 누구나 아무 내용이나 넣어 그럴듯한 토큰을 만들 수 있습니다.
- 토큰을 신뢰할지는 반드시 서버에서 서명을 대조해 판단해야 합니다. 이 도구는 "적혀 있는 내용을 읽어 주는" 역할까지입니다.
JWT 는 암호화가 아니라 인코딩입니다
- base64url 은 누구나 되돌릴 수 있는 표현 방식이지 암호가 아닙니다. 페이로드에 넣은 값은 토큰을 가진 사람이면 전부 읽을 수 있습니다.
- 비밀번호, 주민등록번호, 카드번호 같은 값은 절대 페이로드에 넣지 마세요. 사용자 식별자와 권한 정도만 담는 것이 일반적입니다.
- 남의 토큰이나 운영 중인 서비스의 실제 토큰을 아무 사이트에나 붙여넣는 것도 피해야 합니다. 이 도구는 브라우저 안에서만 처리하지만, 습관을 그렇게 들여 두는 편이 안전합니다.
시간 값을 읽는 법
- JWT 의 시간 값은 1970년 1월 1일부터 흐른 초를 담는 NumericDate 형식입니다. 밀리초가 아니라 초라서, 다른 곳에서 계산할 때 1000 을 곱해야 하는 경우가 많습니다.
- exp 가 지났다면 만료된 토큰이고, 대부분의 서버는 이 경우 요청을 거부합니다. 로그인이 자꾸 풀린다면 exp 가 얼마나 짧게 잡혀 있는지부터 확인해 보세요.
- nbf 는 "이 시각 전에는 쓰지 말라"는 뜻입니다. 서버와 클라이언트의 시계가 조금씩 어긋나 있으면 발급 직후에 이 조건에 걸리기도 합니다.
- 값이 숫자가 아니면 날짜로 해석하지 않고 원본을 그대로 보여 줍니다.
자주 묻는 질문
토큰이 안전한지 이 도구로 확인할 수 있나요?
없습니다. 이 도구는 서명을 검증하지 않습니다. 내용이 잘 보인다는 것은 형식이 맞다는 뜻일 뿐, 위조되지 않았다는 보증이 아닙니다. 신뢰 여부는 서버에서 서명을 대조해 판단해야 합니다.
붙여넣은 토큰이 서버로 전송되나요?
아닙니다. 해독은 전부 브라우저 안에서 이루어집니다. 다만 실제 서비스에서 쓰는 토큰은 그 자체가 로그인 자격이므로, 어떤 사이트에든 붙여넣기 전에 한 번 더 생각하는 습관을 권합니다.
"base64url 길이가 올바르지 않습니다" 라고 나옵니다.
토큰이 중간에 잘렸거나 줄바꿈·공백이 섞여 들어간 경우가 대부분입니다. 복사할 때 앞뒤가 빠지지 않았는지, Bearer 같은 접두어가 함께 들어오지 않았는지 확인해 보세요.
페이로드를 고쳐서 다시 토큰을 만들 수 있나요?
이 도구는 읽기 전용이라 토큰을 만들지 않습니다. 내용을 바꾸면 서명이 맞지 않게 되므로, 제대로 된 서버라면 그 토큰을 거부합니다. 값을 바꾸려면 발급하는 쪽에서 새로 만들어야 합니다.