JWT 해독
JWT 토큰의 헤더와 내용을 풀어 보여 줍니다. 토큰은 전송되지 않습니다
도구를 불러오는 중…
JWT 토큰을 붙여 넣으면 헤더와 페이로드를 JSON으로 풀어 보여 주고, 만료 시각 같은 클레임을 읽기 쉬운 날짜로 바꿔 줍니다. 로그인이나 API 인증이 안 될 때 토큰 내용과 만료 여부를 확인하는 데 씁니다.
사용 방법
- '토큰'에 eyJ로 시작하는 JWT를 붙여 넣습니다. 앞의 'Bearer '는 무시합니다.
- '헤더'와 '페이로드'의 JSON, '서명' 부분을 확인합니다.
- '클레임' 표에서 발급 시각, 만료 시각과 '만료됨', '유효함' 같은 상태를 봅니다.
- 토큰을 믿어도 되는지 확인하려면 '서명 검증(선택)'에 비밀키나 공개키를 넣습니다.
계산 방식과 참고
- JWT는 점으로 나뉜 헤더.페이로드.서명 세 부분이며, 앞의 두 부분은 Base64url로 인코딩된 JSON이라 키 없이도 읽을 수 있습니다. exp, nbf, iat는 1970년 1월 1일(UTC)부터 센 초입니다.
- 서명 검증은 HS, RS, PS, ES(256/384/512)와 브라우저가 지원하면 EdDSA를 Web Crypto로 확인하며, 공개키는 PEM, 인증서, JWK, JWKS로 넣을 수 있습니다. alg가 none인 토큰은 경고합니다.
- 해독과 검증은 브라우저 안에서 하고 토큰과 키를 저장하거나 전송하지 않습니다. 그래도 실제 서비스의 토큰 대신 시험용이나 만료된 토큰을 쓰는 것이 좋습니다.
자주 묻는 질문
- JWT 만료 시간은 어떻게 확인하나요?
- 토큰을 붙여 넣으면 '클레임' 표의 '만료 시각'(exp)이 날짜와 시각으로 나오고, 상태 칸에 남은 시간이나 '만료됨'이 표시됩니다.
- JWT는 암호화되어 있나요?
- 보통의 JWT(JWS)는 서명만 되어 있고 암호화되지 않아 누구나 내용을 읽을 수 있습니다. 비밀번호 같은 민감한 정보를 넣으면 안 됩니다. 부분이 5개인 JWE는 암호화된 토큰이라 키 없이는 읽을 수 없습니다.
- 해독만 하면 토큰이 진짜인지 알 수 있나요?
- 아닙니다. 내용은 누구나 바꿀 수 있으므로 서명을 맞는 키로 검증해야 믿을 수 있습니다. '서명 검증(선택)'에 키를 넣으면 '서명 일치' 또는 '서명 불일치'가 나옵니다.