JWT 생성기 (인코더)
헤더·페이로드 JSON과 비밀키를 넣으면 HS256(HMAC-SHA256)으로 서명된 JWT를 만들어 줍니다. 테스트용 토큰을 서버 없이 빠르게 만들 때 씁니다.
헤더 (JSON)
페이로드 (JSON)
비밀키 (HS256)
사용 방법
- 1헤더와 페이로드를 JSON으로 적습니다. 기본값은 jwt.io 예시와 같습니다.
- 2HS256 비밀키를 넣습니다.
- 3서명된 토큰이 자동으로 나옵니다. 복사 버튼으로 바로 씁니다.
자주 묻는 질문
세 조각을 점(.)으로 이은 것뿐입니다 — base64url(헤더).base64url(페이로드).base64url(서명). 서명은 HMAC-SHA256(비밀키, base64url(헤더)+"."+base64url(페이로드))로 계산됩니다. 세 조각 중 어디 하나만 바뀌어도 서명이 안 맞아 검증에 실패합니다.
URL-안전(URL-safe) Base64를 씁니다. 표준 Base64의 +는 -로, /는 _로 바꾸고, 끝에 붙는 = 패딩은 아예 뗍니다. JWT를 URL 쿼리나 쿠키, HTTP 헤더에 그대로 넣어도 특수문자가 깨지지 않게 하려는 것입니다.
이 도구는 HS256(HMAC-SHA256)만 지원합니다. RS256처럼 공개키/개인키 쌍을 쓰는 비대칭 서명은 개인키를 브라우저에 넣는 것 자체가 위험해서 다루지 않습니다.
테스트·개발 용도로만 쓰세요. 서명은 "이 비밀키를 아는 쪽이 만들었다"는 것만 증명하고 내용을 감추지 않습니다 — 페이로드는 누구나 디코딩해 읽을 수 있어(dev/jwt-decode로 확인해 보세요), 실제 서비스의 비밀키나 개인정보를 이 페이지에 넣으면 안 됩니다.
전송되지 않습니다. 계산은 브라우저의 SubtleCrypto로만 이뤄집니다. 다만 비밀키가 민감한 값이라 이 도구는 방문 기록·입력값 저장 자체를 하지 않습니다 — 새로고침하면 비워집니다.
알아두면 좋은 점
- 헤더·페이로드는 사용자가 적은 JSON 문자열을 그대로 인코딩합니다. 파싱 후 다시 직렬화하지 않습니다 — 그러면 키 순서가 바뀌어 다른 사람이 같은 문자열로 검증할 때 문제가 될 수 있습니다.
- 만든 토큰은 테스트용으로만 쓰세요. 운영 환경의 실제 비밀키를 이 페이지에 넣지 마세요.
- HMAC-SHA256 계산은 src/lib/calc/totp.ts의 SubtleCrypto 래퍼(dev/hmac 계산기와 공유)를 그대로 씁니다. Node crypto(createHmac)로 만든 독립 구현체 및 jwt.io 디버거의 표준 예시 토큰과 대조해 정확성을 확인했습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 5일 · 결과는 참고용 추정치입니다.