본문으로 건너뛰기

JWT 디코더

JWT Decoder

헤더와 페이로드를 해독하고 만료 시각을 현지 시간으로 보여 주며 입력한 키로 서명을 검증합니다.

JSON Web Token을 헤더·페이로드·서명으로 나눠 보여 주고, 표준 클레임이 각각 무슨 뜻인지 설명하고, 공유 비밀이나 붙여넣은 키, 또는 발급자의 JWKS로 서명을 검증합니다. 전부 탭 안에서 일어납니다. 토큰 자체는 어디로도 보내지 않습니다.

🔒 브라우저 안에서만 처리jwttokenauthdecode

토큰은 이 탭에 머뭅니다.

디코딩과 서명 검증 모두 브라우저에서 WebCrypto로 합니다. 아무것도 올리지 않고, 이 페이지에는 서버 쪽이 없습니다. 이 페이지가 낼 수 있는 요청은 직접 입력한 JWKS URL로 보내는 GET 하나뿐이고, 그 요청에는 URL만 실립니다. 토큰도 비밀도 실리지 않습니다.

토큰

앞에 붙은 `Bearer `는 알아서 떼어 냅니다.

사용 방법

  1. 토큰을 붙여넣습니다

    앞에 붙은 `Bearer `는 알아서 뗍니다. 헤더와 페이로드와 서명이 바로 나뉩니다. 누를 버튼이 없습니다.

  2. 상태 줄을 먼저 봅니다

    만료됐는지, 아직 유효하지 않은지, 유효 기간 안인지를 내 시계 기준으로 계산합니다. 페이로드 표의 시간 클레임은 ISO 시각, 로컬 시각, 원래의 epoch 초를 함께 보여 줍니다.

  3. 중요하다면 서명을 검증합니다

    HS256·384·512라면 공유 비밀을, 비대칭 알고리즘이라면 JWKS URL이나 붙여넣은 키를 씁니다. 디코딩은 진위에 대해 아무것도 증명하지 않습니다. 증명하는 것은 서명 검증뿐입니다.

자주 묻는 질문

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

토큰은 브라우저에서 디코딩되고 전송되지 않습니다. 이 페이지에는 서버 쪽이 없습니다. 낼 수 있는 요청은 직접 입력한 JWKS URL로의 GET 하나이고, 거기에는 URL만 실립니다. 그래도 브라우저 탭 안의 토큰은 화면에 뜬 토큰이니 비밀번호처럼 다루세요.

아무나 페이로드를 읽을 수 있나요?

네. JWT는 서명된 것이지 암호화된 것이 아닙니다. 페이로드는 Base64URL, 즉 인코딩입니다. URL에 넣지 않을 것은 JWT에도 넣지 마세요. 이 페이지가 붙여넣기 한 번으로 보여 주는 것이 정확히 그것입니다.

서명이 확인되면 이 토큰을 믿어도 되나요?

그 키를 가진 쪽이 서명했고 그 뒤로 바뀌지 않았다는 뜻입니다. 만료나 대상, 발급자, 폐기에 대해서는 아무 말도 하지 않습니다. 만료는 상태 줄이 다루고, 나머지는 애플리케이션의 몫입니다.

ES256K나 Ed448 토큰은 왜 확인이 안 되나요?

검증에 브라우저의 WebCrypto를 쓰는데 그 곡선들이 거기 없기 때문입니다. 브라우저가 할 수 있는 것은 HS·RS·PS·ES의 256·384·512와 Ed25519입니다. 그 밖의 것은 조용히 통과시키는 대신 확인할 수 없다고 알려 줍니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.