JWT 디코더

이 브라우저에서 처리

텍스트 한도: 2000000자

이 도구는 입력을 업로드하지 않습니다.

조회만 합니다. 서명을 검증하지 않습니다. JWT는 암호가 아닙니다. alg:none은 위험입니다.

점 세 개로 나뉜 JWT에서 헤더와 페이로드만 읽습니다. 서명 검증이 아니고, 토큰을 가진 사람은 누구나 클레임을 볼 수 있습니다.

API가 401을 주고, Authorization: Bearer 값이 만료인지 aud가 틀린지 봐야 할 때입니다. 시크릿 없이 읽기만 하는 일이 이 페이지입니다.

세 조각은 header.payload.signature입니다. 앞의 둘은 Base64URL이라 풀면 JSON이 됩니다. 세 번째는 서명 바이트입니다. Base64와 비슷하지만 패딩·URL 안전 문자가 다릅니다.

볼 때

  • 카카오·네이버 로그인 뒤 받은 토큰의 sub·iss 확인
  • exp가 이미 지났는지 로컬에서 가늠할 때
  • 헤더의 alg가 예상과 다른지 볼 때

내용을 읽었다고 해서 그 토큰을 믿으면 안 됩니다. 누구나 페이로드를 만들어 붙일 수 있습니다.

사용 순서

  1. 토큰 전체를 붙입니다. 점 두 개가 있어야 합니다.
  2. 헤더와 페이로드를 읽습니다. alg:none이면 서명 없음으로 의심하세요.
  3. 시간 숫자를 사람이 읽는 시각으로 바꾸려면 Unix 타임스탬프를 쓰세요.

제한

  • 서명 검증·위조·시크릿 추측을 하지 않습니다.
  • AES로 토큰을 “복호화”하는 도구가 아닙니다. 그건 AES 암호화와 다른 일입니다.
  • 붙여 넣은 값은 이 탭에 남습니다. 네트워크로 보내지 않습니다.

자주 묻는 질문

서명이 맞는지 확인해 주나요?

아닙니다. 디코드만 합니다. 검증에는 발급자의 비밀 키나 공개 키가 필요하고, 그 키를 이 페이지에 붙이지 마세요.

JWT는 암호화된 건가요?

일반 JWT(JWS)는 인코딩일 뿐입니다. 토큰을 가진 사람은 페이로드를 읽습니다. 암호화된 JWE와 다릅니다.

alg가 none이면 어떻게 되나요?

서명이 없다는 뜻에 가깝습니다. 디코더가 내용을 보여 줘도 신뢰하면 안 됩니다. 서버에서 알고리즘을 허용 목록으로 막아야 합니다.

만료 시간도 보이나요?

페이로드의 exp·iat·nbf를 숫자로 보여 줍니다. 사람이 읽기 쉽게 바꿀 수는 있어도, 그 값이 위조되지 않았다는 뜻은 아닙니다.

운영 토큰을 붙여도 되나요?

이 탭 밖으로 보내지는 않습니다. 그래도 운영 세션을 아무 사이트에 붙이는 습관은 위험합니다. 개발용·만료된 토큰으로 확인하세요.

관련 도구