JWT 생성기
브라우저에서 직접 JWT 토큰을 생성하고 서명할 수 있습니다. 페이로드 클레임(표준 sub, aud, exp 등과 사용자 정의 내용 포함)을 입력하고, 알고리즘(HS256(공유 비밀 사용) 또는 RS256/ES256(사용자 비밀 키 사용))을 선택하면 도구가 3부 구성의 토큰을 자동으로 생성합니다. 로컬 개발, 로드 테스트 및 인증 문제 재현에 유용합니다.
JWT를 생성하는 방법
-
1
페이로드를 입력하세요
표준 청구항목(`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) 및 앱에서 요구하는 모든 사용자 정의 청구항목을 포함합니다.
-
2
알고리즘을 선택하세요
공유 비밀을 사용하는 HS256/384/512 또는 PEM 형식의 사설 키를 사용하는 RS256/ES256.
-
3
키를 제공하세요
HMAC용 공유 비밀 텍스트를 입력하거나, RSA/ECDSA용 사설 키를 붙여넣으세요. 두 경우 모두 브라우저에 저장됩니다.
-
4
생성됨
출력은 서명된 토큰입니다. 이를 복사하여 테스트에 사용하고, JWT 디코더를 사용해 해독하여 검토하세요.
인증된 사용자 토큰의 일반적인 페이로드
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "user_12345",
"iat": 1713398400,
"nbf": 1713398400,
"exp": 1713402000,
"jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
"scope": "read:profile write:posts"
}
알고리즘 선택: HMAC 대 비대칭 알고리즘
| 알고리즘 | 키 유형 | 사용 시 |
|---|---|---|
| HS256 | 256비트 공유 비밀 | 스스로 서명 및 검증하는 모놀리스트 방식 |
| HS384/512 | 보안 기간이 더 길다 | HS256과 동일하며 보안성이 더 강하다 |
| RS256 | RSA 2048+ | 발행인 서명; 다수의 서비스에서 공개 키를 사용하여 인증합니다 |
| ES256 | ECDSA P-256 | RS256과 동일하지만 서명 크기가 더 작음 |
| EdDSA | Ed25519 | 가장 빠른 비대칭 인증 기법, 최소 키 사용 |
키 강도
- HMAC 비밀 값은 최소한 알고리즘의 출력 크기만큼 충분한 엔트로피를 가져야 합니다. HS256은 256개의 무작위 비트(32바이트)가 필요하며, 이보다 짧으면 브루트포스 공격으로 해독될 수 있습니다.
- RSA 키는 최소 2048비트여야 하며, 장기간 사용되는 토큰의 경우 3072비트 또는 4096비트가 권장됩니다.
- ECDSA(ES256)는 훨씬 더 작은 키와 더 빠른 서명 처리 속도를 제공함에도 불구하고 RSA 3072와 비슷한 보안 수준을 실현합니다.
유효기간 지침
| 토큰 유형 | 일반적인 exp 유효 기간 |
|---|---|
| 접근 토큰 | 5~60분 |
| 갱신 토큰 | 일에서 주까지 |
| 비밀번호 재설정 | 5~15분 |
| 이메일 인증 | 24시간 |
| 서비스 간 처리 | 1~5분(단축형) |
짧은 만료 시간과 갱신 토큰을 함께 사용하는 것이 현대적인 방식입니다. 반면 장기간 유효한 액세스 토큰은 침해되었을 때 취소하기가 매우 어렵습니다.
흔한 오류들
- 프로덕션 환경에서 테스트용 비밀을 재사용하는 경우. 생성기가 비밀의 보안성이 낮아 보일 경우 HS256 비밀과 출력된 JWT를 ‘테스트용만’으로 표시합니다. 이 경고는 반드시 신뢰해야 합니다.
exp없이 서명하는 경우. 만료일이 없는 JWT는 영구히 유효합니다. 아주 타당한 사유와 취소 목록이 있는 경우가 아니라면 항상exp를 설정하십시오.- 검증 측에서 헤더의
alg를 그대로 사용하는 경우. 검증 단계에서는 항상 허용 알고리즘 목록(화이트리스트)만 적용하고, 토큰이 요구하는 대로 따르지 마십시오. - 여기에 실제 개인 키를 붙여넣는 경우. 이 생성기는 브라우저에서 실행되지만 개인 키는 비밀 정보로 취급하십시오. 운영용 키가 아닌 테스트용 키만 사용하세요.
자주 묻는 질문
아니요. 서명은 웹 암호화 API를 사용하여 브라우저 내에서 수행됩니다. 키는 결코 사용자의 기기에서 나가지 않습니다. 다만 프로덕션 키의 경우 브라우저가 아닌 통제된 환경에서 생성하고 서명해야 합니다.
동일한 서비스가 서명 및 검증을 수행하는 모노리스톤 구조에서는 HS256이 적합합니다. 발급자와 검증자가 별개인 경우에는 RS256 또는 ES256이 더 적합하며, 이 경우 서명 키를 공개하지 않고도 공개 키를 공유할 수 있습니다.
접근 토큰의 경우 일반적으로 소요 시간은 5~15분입니다. 원활한 사용자 경험을 위해 수명이 더 긴 갱신 토큰을 사용하십시오. exp 클레임 없이 JWT를 발급하지 마십시오.
이 도구는 고장 난 토큰 또는 서명이 없는 토큰을 의도적으로 테스트하기 위해 alg: none를 출력할 수 있도록 지원하며, 명확한 경고 메시지를 표시합니다. 생산 코드에서는 이러한 토큰을 절대 사용하지 마십시오.
관련 도구
Base64 파일 인코더
모든 파일(PDF, ZIP, 이미지, 실행 파일)을 Base64 텍스트로 인코딩해 JSON, 이메일, YAML, data URI에 삽입하세요. 브라우저에서 로컬로 실행되며 업로드가 없습니다.
체크섬 검증기
텍스트의 MD5, SHA-1, SHA-256, SHA-384, SHA-512 또는 CRC32 체크섬을 계산하고 기대값과 비교해 일치 여부를 명확하게 확인하세요.
암호화 식별자
암호문 또는 해시 값을 붙여넣으면 식별자에 따라 MD5, SHA, bcrypt, AES, RSA, Base64 등 가능한 알고리즘이나 인코딩 방식이 제시됩니다.
암호 식별기
암호문을 붙여 넣으면 Base64, hex, 이진수, 모스, 시저 또는 치환, JWT, 일반적인 해시 등 가능성이 높은 인코딩/암호 방식을 제안합니다.
CSR 생성기
PEM 형식의 인증서 서명 요청과 그에 맞는 RSA 개인 키를 생성합니다. common name, 조직 필드, 키 크기(2048, 3072, 4096비트)를 지정할 수 있습니다.
SSL 인증서 생성기
자체 서명 SSL/TLS 인증서와 RSA 개인 키를 전부 브라우저에서 생성하세요. 사용자 지정 Common Name, SAN, 유효 기간을 PEM으로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- ตัวสร้าง JWT [TH]
- Generador de JWT [ES]
- Générateur de JWT [FR]
- Gerador de JWT [PT]
- Generator JWT [PL]
- مولد JWT [AR]
- JWT-Generator [DE]
- JWT-generator [NL]
- Generator JWT [ID]
- Bộ tạo JWT [VI]
- JWT-generator [SV]
- JWTジェネレーター [JA]
- Generatore JWT [IT]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]