공개키 검사

JWT 디코더서명과 클레임을 따로 확인

내용을 먼저 읽고 예상 알고리즘과 공개키를 직접 지정하세요.

JWT 디코더

JWT 토큰

토큰과 키는 현재 페이지 메모리에만 있습니다. 원격 키를 요청하거나 입력을 저장하지 않습니다.

디코딩된 JSON 및 보고서

미검증: 디코딩은 토큰의 유효성을 보장하지 않습니다.

서명 및 클레임 설정

예상 알고리즘을 직접 선택하세요. 서명 일치는 발급자 신원, 권한, 폐기 여부 또는 토큰 전체 유효성을 증명하지 않습니다.

검증에 사용할 공개키

공개 JWK 하나 또는 SPKI PEM PUBLIC KEY를 입력하세요. RS256은 RSA 2048–8192비트, ES256은 P-256을 사용합니다. 개인키와 원격 JWKS는 지원하지 않습니다.

exp, nbf, iat는 서명과 별도로 검사합니다. 미래 iat는 이 도구의 정책상 실패로 표시합니다. 없는 시간은 누락으로 남고 발급자와 대상이 비어 있으면 검사하지 않습니다. UTC는 밀리초로 표시하며 원래 소수는 보고서에 보존합니다.

제한: 토큰 100,000자, 공개키 20,000자, 테스트 클레임 50,000자. 엄격한 base64url, UTF-8 및 JSON 객체만 허용하며 중복 키와 변환 시 값이 바뀌는 숫자는 거부합니다.

테스트 토큰 생성기

컴팩트 직렬화 형식의 JWT를 붙여 넣으세요.

JWT 디코더로 거부된 API 요청의 토큰을 살펴보세요. 헤더와 클레임을 읽고 발급자, 대상, 시간 정보를 비교하면 예상한 토큰이 전달되었는지 확인할 수 있습니다. 처음 표시되는 서명 상태는 미검증입니다.

JWT 디코딩은 base64url로 표현된 내용을 읽는 과정입니다. JWT 서명 검증에는 별도의 공개키가 필요하며 JWT 만료 시간 검사는 다른 질문에 답합니다. 읽을 수 있는 데이터라고 해서 신뢰할 수 있는 것은 아닙니다.

JWT 디코더에서 검사를 분리하는 이유

내용 확인과 신뢰 판단을 구분

JWT 디코더는 서명과 시간 결과를 분리합니다. 만료된 토큰도 서명은 일치할 수 있고, 정상적인 JSON이라도 신뢰할 서명이 없을 수 있습니다. 이 차이를 보면 서버의 거부 원인을 좁힐 수 있습니다.

토큰이 읽을 수 있는 데이터, 공개키 서명 검사, 독립적인 시계 검사로 나뉩니다.

독립된 초안으로 연습

테스트 생성기를 켜면 임시 로컬 키로 테스트 토큰을 만듭니다. 먼저 토큰과 공개키를 미리 보고 적용해야 주 입력이 바뀝니다. 한 번 실행 취소하면 이전 입력과 결과가 복원됩니다.

테스트 초안에서 토큰과 공개키 미리 보기를 만든 뒤 적용 단계로 입력을 바꿉니다.

검사의 기준부터 정하세요

01

자동 처리의 범위 확인

자동 디코딩은 수정 후 350밀리초를 기다립니다. 끄면 디코딩 버튼 또는 Ctrl/Cmd+Enter를 사용할 수 있습니다. 서명 검증이나 테스트 생성은 자동 실행되지 않습니다.

02

토큰 밖에서 예상값 준비

RS256 또는 ES256을 직접 선택하고 공개 JWK나 SPKI PUBLIC KEY PEM을 입력하세요. 발급자와 대상도 필요하면 지정합니다. 헤더의 키 참조를 신뢰 기준으로 사용하지 않습니다.

03

내보내기 전 기준 시각 확인

시간을 비우면 실행할 때의 현재 시각을 사용합니다. Unix 초를 입력하면 같은 시점을 재현할 수 있습니다. 현재 시각 버튼은 교체 미리 보기를 열며 입력이 바뀌면 오래된 보고서를 내보낼 수 없습니다.

요청 거부 원인을 단계별로 확인

헤더와 클레임 표시

JSON 객체 두 개와 서명 정보를 읽기 쉽게 표시합니다. 토큰이 선언한 알고리즘과 사용자가 선택한 알고리즘을 구분하며 kid나 URL을 신뢰하지 않습니다.

JWT 공개키 비교

RS256은 RSA 2048–8192비트, ES256은 P-256을 지원합니다. 서명 불일치와 잘못된 키, 지원하지 않는 알고리즘을 구분해 표시합니다.

재현 가능한 시간 검사

exp, nbf, iat를 기준 시각과 0–86400초 허용치로 검사합니다. 미래 iat는 이 도구의 정책상 실패로 표시하고 없는 시간은 누락 상태로 남깁니다.

발급자와 대상 비교

iss는 문자열을 정확히 비교합니다. aud는 문자열 일치 또는 배열에 예상 대상이 포함되는지 확인합니다. 예상값을 비우면 검사하지 않으며 서명 일치가 접근 권한을 주지는 않습니다.

입력 형식과 검사 범위

세 부분으로 된 토큰만
Bearer 접두사, 주변 공백, 패딩을 제거한 원래 토큰을 입력하세요. 다섯 부분의 JWE는 복호화하지 않습니다. none은 빈 서명으로 읽을 수 있지만 검증 완료가 되지 않습니다.
엄격한 문자와 숫자 처리
헤더와 클레임은 UTF-8 JSON 객체여야 합니다. 중복 키, 짝 없는 서로게이트, 비정규 base64url은 거부합니다. 표현 가능한 소수는 허용하지만 변환 시 값이 바뀌면 오류가 납니다.
공개 검증 자료만 입력
공개 JWK 하나 또는 완전한 SPKI PUBLIC KEY PEM만 허용합니다. 개인키와 대칭키는 거부하며 JWK의 alg, use, key_ops가 검증 조건과 충돌해도 실패합니다.
원격 키 및 확장 제외
jku, x5u, kid, jwk, x5c는 신뢰되지 않은 메타데이터로 표시합니다. 키를 가져오거나 자동 선택하지 않습니다. crit, b64, zip이 있는 서명은 검증하지 않습니다.
크기와 날짜 표시 제한
토큰 100,000자, 공개키 20,000자, 테스트 클레임 50,000자까지입니다. 생성 결과도 토큰 제한을 충족해야 합니다. Date 범위 밖의 시간은 무효이며 UTC는 밀리초로 표시하고 원래 소수는 보고서에 남깁니다.
테스트는 인증을 대신하지 않음
생성기는 처음에는 꺼져 있고 생성 버튼을 눌러야 임시 키를 만듭니다. 미리 보기를 적용해도 자동 검증하지 않습니다. 권한이나 토큰 폐기 여부는 애플리케이션에서 별도로 확인해야 합니다.

JWT 디코더 자주 묻는 질문

JWT나 키가 서버에 전송되나요?

아니요. 입력은 현재 페이지 메모리에서만 처리하며 원격 키도 요청하지 않습니다. 공개키만 입력할 수 있고 실제 개인키나 대칭 비밀키는 거부합니다.

RSA 또는 ECDSA 서명을 확인할 수 있나요?

네. RS256은 RSA 2048–8192비트, ES256은 P-256 공개키로 검증합니다. 알고리즘을 직접 선택하고 공개 JWK 또는 SPKI PEM을 입력하세요. 다른 변형은 지원하지 않습니다.

토큰 만료 여부는 어떻게 판단하나요?

exp는 Unix 초입니다. 기준 시각에서 허용치를 뺀 값이 exp에 도달하면 만료 검사에 실패합니다. 시간을 비워 두면 실행 시 현재 시각을 사용하므로 기기 시계도 확인하세요.

암호화된 JWE도 읽을 수 있나요?

아니요. 다섯 부분으로 구성된 JWE는 거부합니다. 암호화된 페이로드에는 별도의 복호화 도구가 필요하며 이 페이지는 복호화 키를 요청하지 않습니다.

서명 부분을 읽을 수 있는 형태로 볼 수 있나요?

서명은 JSON 문장이 아닌 바이트 정보입니다. 보고서에서 서명 정보를 확인할 수 있지만 그것을 읽었다고 검증된 것은 아닙니다. 실제 일치는 선택한 알고리즘과 공개키로 따로 확인합니다.

보고서에 예상과 다른 결과가 있나요?

검사 계속하기

JWT 디코더에서 예상 알고리즘과 공개키, 기준 시각을 지정하고 현재 입력에 해당하는 보고서만 내보내세요.