JWT 생성기

JWT(JSON Web Token)를 생성합니다. Header, Payload를 설정하고 비밀키로 서명합니다.

Header

Payload

비밀키는 안전하게 보관하세요. 절대 공개하지 마세요.

JWT 구조

  • Header: 알고리즘과 토큰 타입 정보
  • Payload: 클레임(사용자 데이터, 만료시간 등)
  • Signature: Header + Payload + Secret으로 생성된 서명

JWT 생성기 안내

JWT 생성 알아보기

JWT(JSON Web Token) 생성은 사용자 인증이나 정보 전달을 위한 서명된 토큰을 만드는 과정입니다. Header(알고리즘, 타입), Payload(클레임 데이터), Secret Key(비밀키)를 조합해서 유효한 JWT를 만들 수 있습니다. 생성된 JWT는 API 인증, 세션 관리, SSO(Single Sign-On), 마이크로서비스 간 통신 등 다양한 곳에서 활용됩니다.

무엇을 할 수 있나요?

  • HMAC 알고리즘 선택: HS256, HS384, HS512 지원
  • 표준 클레임 폼 입력: sub(주체), iss(발급자), aud(수신자)
  • 만료 시간 설정: 분, 시간, 일 단위로 유연하게 조절
  • 커스텀 클레임 추가: 필요한 데이터를 키-값 쌍으로 추가
  • JSON 모드: 중첩 객체나 배열이 필요할 때 직접 JSON 편집
  • 안전한 랜덤 비밀키 자동 생성(256비트)
  • 생성된 토큰 복사 및 실시간 미리보기

사용 가이드

  1. Header 섹션에서 알고리즘을 선택합니다. HS256이 가장 일반적입니다.
  2. Payload 섹션에서 sub, iss, aud 등 필요한 클레임을 입력합니다.
  3. 만료 시간(exp)을 설정합니다. 시간, 일, 분 단위 중 선택할 수 있습니다.
  4. 추가 데이터가 필요하면 '+ 클레임 추가' 버튼으로 커스텀 클레임을 넣습니다.
  5. 비밀키를 직접 입력하거나 '랜덤 생성' 버튼으로 안전한 키를 만듭니다.
  6. 'JWT 생성' 버튼을 클릭하면 서명된 토큰이 생성됩니다.

추천 활용법

  • API 개발 중 테스트용 인증 토큰 생성
  • Postman이나 cURL 요청에 사용할 Bearer 토큰 만들기
  • JWT 기반 인증 시스템 프로토타이핑
  • 토큰 만료 동작을 검증하기 위한 다양한 시간 설정 테스트
  • 팀원에게 특정 클레임 구조를 시연하거나 공유할 때

참고사항

  • 이 도구로 생성한 토큰은 테스트와 개발 용도입니다. 프로덕션에서는 서버 측에서 토큰을 생성하세요.
  • 비밀키는 최소 알고리즘 해시 길이(HS256은 32바이트) 이상으로 설정하는 것이 안전합니다.
  • 만료 시간이 너무 길면 보안 위험이 커집니다. 액세스 토큰은 1시간 이내를 권장합니다.
  • JSON 모드에서는 반드시 유효한 JSON을 입력해야 합니다. 잘못된 형식이면 오류가 발생합니다.
  • 모든 토큰 생성은 브라우저에서 처리되며, 비밀키나 토큰이 서버로 전송되지 않습니다.

Q&A

Q: 안전한 비밀키는 어떻게 만드나요?

'랜덤 생성' 버튼을 클릭하면 256비트(64자 16진수)의 암호학적으로 안전한 무작위 키가 생성됩니다. 실제 운영 환경에서는 이 키를 환경 변수나 시크릿 매니저에 안전하게 보관하고, 코드에 직접 하드코딩하지 마세요.

Q: JWT의 만료 시간은 얼마로 설정해야 하나요?

용도에 따라 다릅니다. 액세스 토큰은 15분~1시간, 리프레시 토큰은 7일~30일이 일반적입니다. 보안이 중요한 서비스(금융, 의료)는 짧게, 사용자 편의가 우선인 경우 길게 설정합니다.

Q: JSON 모드는 언제 사용하나요?

중첩 객체, 배열, 또는 복잡한 데이터 구조를 클레임에 포함해야 할 때 JSON 모드가 유용합니다. 폼 모드로는 단순 키-값 쌍만 입력할 수 있지만, JSON 모드는 자유롭게 구성할 수 있습니다.

Q: HS256, HS384, HS512 중 어떤 것을 선택해야 하나요?

대부분의 웹 애플리케이션에서는 HS256이면 충분합니다. HS384와 HS512는 더 긴 해시를 생성하여 보안이 약간 강해지지만, 처리 속도가 미세하게 느려집니다. 특별한 보안 요구사항이 없다면 HS256을 사용하세요.

Q: 생성된 토큰을 바로 프로덕션에서 사용해도 되나요?

기술적으로 가능하지만 권장하지 않습니다. 프로덕션 환경에서는 서버 측 코드로 토큰을 생성하는 것이 안전합니다. 이 도구는 개발, 테스트, 학습 목적으로 사용하세요.

Q: 커스텀 클레임에는 어떤 데이터를 넣을 수 있나요?

사용자 역할(role), 권한(permissions), 이름(name) 등 필요한 어떤 데이터든 넣을 수 있습니다. 단, JWT Payload는 암호화되지 않으므로 민감한 정보(비밀번호, 신용카드 번호 등)는 포함하지 마세요.

Q: 비밀키를 분실하면 어떻게 되나요?

해당 키로 서명된 모든 토큰의 유효성을 검증할 수 없게 됩니다. 새 비밀키를 만들고, 기존 토큰을 무효화한 뒤, 새 키로 토큰을 재발급해야 합니다.

Q: 생성한 토큰이나 비밀키가 서버로 전송되나요?

아닙니다. 토큰 생성을 포함한 모든 작업이 브라우저에서 처리됩니다. 입력한 비밀키와 생성된 토큰은 외부로 전송되지 않습니다.