portfolios.tools

JWT 디코더 및 클레임 검사기

세 부분으로 된 압축 JSON Web Token을 디코딩해 헤더와 클레임을 확인하고 시간 클레임을 현재 시계와 비교합니다. 디코딩은 서명을 검증하거나 신뢰성을 입증하지 않습니다.

토큰 입력

토큰은 페이지 메모리에만 있으며 저장되지 않습니다. 페이지를 불러올 때 이전 버전이 브라우저 저장 공간에 남긴 토큰을 제거합니다. 이 도구는 API로 토큰을 보내지 않습니다.

형식을 익힐 때는 실제 계정에 접근할 수 없는 테스트 토큰을 사용하세요. 계정 접근 권한을 줄 수 있는 토큰을 공유하지 마세요.

디코딩된 토큰 구조

헤더와 페이로드를 확인하려면 세 부분으로 된 압축 JWT를 붙여 넣으세요.

JWT 검사기 작동 방식

압축 서명 JWT는 마침표로 구분된 세 개의 Base64url 부분으로 구성됩니다. JSON 헤더, 클레임이 든 JSON 페이로드, 서명 부분입니다. 이 도구는 헤더와 페이로드를 UTF 8 JSON 객체로 디코딩합니다. 서명, 발급자, 대상, 권한 또는 인가를 검증하지 않습니다.

세 부분으로 된 압축 토큰을 입력하세요. 디코딩된 헤더와 페이로드는 서식이 지정된 JSON으로 표시됩니다. 표에는 iss, sub, aud, exp, iat, nbf와 같은 일반 클레임이 나옵니다. 이 도구는 다섯 부분 암호화 형식을 지원하지 않습니다. 보호된 헤더는 JSON으로 읽을 수 있지만 암호화된 페이로드의 클레임은 복호화 전까지 확인할 수 없습니다.

exp, iat, nbf의 NumericDate 값은 UTC 기준 시점 이후의 초로 해석하며 소수 초도 처리합니다. 만료 시각과 유효 시작 시각을 화면에 표시된 시계와 비교합니다. 누락된 값과 형식이 잘못된 날짜는 따로 표시합니다. 이 비교는 토큰이나 클레임을 유효하다고 판정하지 않습니다.

서명 부분이 있다고 표시되면 세 번째 부분에 텍스트가 있다는 뜻뿐입니다. 암호학적 값, 알고리즘, 키, 발급자는 검사하지 않습니다. 발급 서비스가 토큰을 검증하기 전까지 디코딩된 클레임을 신뢰하지 마세요.

단계별 안내

  1. 세 부분으로 된 압축 JWT를 토큰 입력란에 붙여 넣으세요.
  2. 디코딩된 헤더, 페이로드, 서명 부분과 표시된 클레임을 확인하세요.
  3. exp와 nbf를 표시된 시계와 비교하고, 신뢰하기 전에 예상한 키와 규칙으로 토큰을 검증하세요.

계산 예시

다음 예시 토큰을 붙여 넣으세요: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlIiwic3ViIjoidXNlci0xMjMiLCJhdWQiOiJhcGkuZXhhbXBsZSIsImV4cCI6MTg5MzQ1NjAwMCwiaWF0IjoxODkzNDUyNDAwLCJuYmYiOjE4OTM0NTI0MDB9.c2ln. alg HS256과 typ JWT가 있는 헤더, 발급자, 주체, 대상, 만료, 발급 시각, 유효 시작 시각 클레임으로 디코딩됩니다.

예시의 세 번째 부분은 비어 있지 않으므로 서명 텍스트가 있다고 표시됩니다. 서명 자체를 검증하지는 않습니다. exp는 2030년 1월 1일 00:00 UTC이고 iat와 nbf는 2029년 12월 31일 23:00 UTC입니다. 비교 결과는 현재 시계에 따라 달라집니다.

검사기 사용 시점

개발 또는 문제 해결 중 세 부분 압축 토큰의 JSON 헤더와 클레임을 확인할 때 사용하세요.

서명과 인가는 별도의 신뢰할 수 있는 서비스에서 검증하세요. 검증이 끝날 때까지 디코딩한 내용을 신뢰하지 마세요.

자주 하는 해석 오류

읽을 수 있는 JSON, 서명 부분의 존재 또는 만료되지 않은 exp 클레임을 진위 증거로 보지 마세요. 디코딩과 시각 비교는 암호학적 검증이 아닙니다.

iss, aud, sub 또는 사용자 정의 권한이 페이로드에 있다는 이유만으로 참이라고 가정하지 마세요. 서비스는 서명을 검증하고 자체 클레임 및 인가 규칙을 적용해야 합니다.

JWT 구조와 시간 클레임

압축 JWT = Base64url(UTF8(JSON 헤더)) . Base64url(UTF8(JSON 페이로드)) . 서명 부분

만료 시각 도달 = 현재 UTC 시각 초 ≥ exp

유효 시작 시각 도달 = 현재 UTC 시각 초 ≥ nbf

NumericDate = 1970 01 01 00:00:00 UTC 이후의 초

이 도구는 세 부분으로 된 압축 서명 형식을 검사합니다. 패딩 없는 Base64url과 UTF 8을 엄격히 디코딩하고 헤더와 페이로드가 JSON 객체여야 합니다. 표시되는 만료 또는 유효 시작 결과는 시계 비교일 뿐 서명 검증이나 인증 판단이 아닙니다.

범위와 한계

이 페이지는 세 부분으로 된 압축 JWT를 검사하고 헤더와 페이로드를 디코딩합니다. 서명, 알고리즘, 키를 검증하지 않고 발급자나 대상을 확인하지 않으며 권한을 평가하거나 애플리케이션의 토큰 수락 여부를 판단하지 않습니다. 다섯 부분 JWE를 복호화하거나 키를 가져오거나 발급자 및 토큰 서비스에 연결하지 않습니다. 지원되는 정밀도를 벗어난 JSON 숫자는 거부하며 날짜 표시는 밀리초 정밀도입니다. 시간 클레임은 브라우저 시계와 비교하므로 서비스 시계와 다를 수 있습니다. 도구는 토큰을 저장하지 않지만 열린 페이지에 접근할 수 있는 사람은 토큰을 볼 수 있습니다.

용어

JWT
클레임을 나타내는 JSON Web Token입니다. 서명되거나 변조 방지 처리되거나 암호화될 수 있습니다.
클레임
토큰 페이로드의 이름 있는 값으로 발급자, 주체, 대상 또는 시각 등이 있습니다.
NumericDate
1970년 1월 1일 00:00:00 UTC 이후의 초 수입니다. 소수 초를 사용할 수 있습니다.

FAQ

디코딩된 토큰은 유효한가요?

아니요. 디코딩은 읽을 수 있는 구조만 보여줍니다. 신뢰할 수 있는 서비스가 발급했거나 내용이 믿을 만하다는 것을 입증하지 않습니다.

이 도구가 서명을 검증하나요?

아니요. 세 번째 부분에 텍스트가 있는지만 표시합니다. 검증하려면 예상 알고리즘과 토큰 발급자를 신뢰할 수 있는 키를 사용해야 합니다.

왜 다섯 부분 토큰은 지원하지 않나요?

다섯 부분 압축 JWE는 보호된 헤더를 JSON으로 읽을 수 있습니다. 암호화된 페이로드의 클레임은 복호화하지 않으면 확인할 수 없습니다. 이 도구는 세 부분 압축 JWT만 지원합니다.

여기서 exp, iat, nbf는 무엇을 뜻하나요?

UTC 기준 시점 이후의 초로 표현된 NumericDate 클레임입니다. exp와 nbf를 현재 시계와 비교하고 iat는 날짜로 표시합니다. 누락되거나 잘못된 값은 별도로 표시합니다. 이 비교는 토큰을 검증하지 않습니다.

서명 부분이 있으면 무엇을 알 수 있나요?

세 번째 부분이 비어 있지 않다는 점뿐입니다. 서명 바이트, 알고리즘, 키, 발급자, 대상 또는 권한은 검사하지 않습니다.

관련 도구

Base64 페이로드 인코더로 개별 인코딩 부분을 확인할 수 있습니다. 서명과 클레임 요건은 ID 제공자나 서비스 문서를 참고하세요.