JWT Generator
JWT 토큰 생성 및 서명 · HS256/HS384/HS512 · 브라우저에서 처리
JWT Generator란?
JWT(JSON Web Token)는 Header.Payload.Signature 세 부분을 점(.)으로 연결한 자가 포함(self-contained) 토큰입니다. 이 도구는 HS256·HS384·HS512 알고리즘을 지원하며 브라우저 WebCrypto API로 서명합니다. 생성된 토큰은 서버로 전송되지 않으며 모든 처리는 로컬에서 이루어집니다.
자주 묻는 질문 (FAQ)
JWT의 세 부분은 각각 무엇인가요?
Header: 알고리즘·토큰 유형 지정(예: {"alg":"HS256","typ":"JWT"}). Payload: 클레임(claim) 데이터(예: sub, exp, iat). Signature: 헤더+페이로드를 시크릿 키로 서명한 값. 세 부분은 Base64URL로 인코딩됩니다.
JWT는 어디에 사용하나요?
API 인증(Bearer Token), 세션 관리, SSO(단일 로그인), 마이크로서비스 간 신원 전달에 사용됩니다. Authorization: Bearer {token} 헤더로 전달하는 것이 일반적입니다.
HS256과 RS256의 차이는?
HS256은 대칭키(동일 시크릿으로 서명·검증), RS256은 비대칭키(개인키로 서명, 공개키로 검증)입니다. 이 도구는 HS256·HS384·HS512(HMAC)를 지원합니다.
JWT는 암호화되나요?
아니요. JWT의 Header·Payload는 Base64URL로 인코딩될 뿐, 암호화되지 않습니다. Signature는 위조 방지용이며 내용 기밀성은 없습니다. 민감 정보는 Payload에 넣지 마세요.
생성된 토큰이 서버로 전송되나요?
아니요. WebCrypto API를 사용한 모든 처리가 브라우저에서만 이루어집니다. 시크릿 키와 토큰이 외부로 유출되지 않습니다.
JWT 토큰은 얼마나 오래 유효하게 설정해야 하나요?
액세스 토큰은 15분~1시간, 리프레시 토큰은 7~30일을 권장합니다. 짧을수록 보안이 높아지지만 사용자 경험이 떨어질 수 있으므로 서비스 특성에 맞게 조절하세요.
JWT를 LocalStorage에 저장해도 안전한가요?
권장하지 않습니다. LocalStorage는 XSS 공격에 노출될 수 있습니다. 액세스 토큰은 HttpOnly 쿠키에 저장하는 것이 더 안전합니다.
JWT를 로그아웃 시 무효화하려면 어떻게 하나요?
JWT는 상태 비저장(stateless)이므로 서버에서 직접 무효화하기 어렵습니다. 블랙리스트 방식(redis에 토큰 저장)이나 토큰 만료 시간을 짧게 설정하는 방법을 사용합니다.