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를 출력할 수 있도록 지원하며, 명확한 경고 메시지를 표시합니다. 생산 코드에서는 이러한 토큰을 절대 사용하지 마십시오.
관련 도구
숫자-문자 암호
퍼즐, 수수께끼, 방탈출 단서에 쓰이는 A=1, B=2 암호(A1Z26)로 숫자를 문자로, 문자를 숫자로 변환하세요.
파일 해시 계산기
붙여 넣은 텍스트나 파일 내용의 MD5, SHA-1, SHA-256, SHA-512 해시를 계산하여 다운로드와 파일 무결성을 확인하세요.
비즈네르 암호 인코더
키워드를 사용해 고전 비즈네르 암호로 메시지를 암호화하고 복호화하세요. 라틴 문자 A-Z를 이동하며 대소문자, 공백, 문장 부호를 보존합니다.
패스프레이즈 생성기
무작위 일반 단어로 기억하기 쉬운 패스프레이즈를 생성합니다. 단어 수, 구분 문자, 대문자화, 뒤에 붙이는 숫자를 조절할 수 있습니다.
랜덤 API 키 생성기
서버에서 8~128자의 16진수, base64url, 영숫자 API 키 또는 UUIDv4를 생성합니다.
텍스트 암호화 도구
비밀번호를 사용하여 AES 알고리즘으로 문자 메시지를 암호화 및 복호화함으로써 수신자만이 내용을 읽을 수 있도록 합니다.
이 도구는 다른 언어로도 제공됩니다
- Generator JWT [ID]
- مولد JWT [AR]
- Generador de JWT [ES]
- JWT-Generator [DE]
- Bộ tạo JWT [VI]
- JWTジェネレーター [JA]
- JWT-generator [SV]
- JWT-generator [NL]
- Gerador de JWT [PT]
- Générateur de JWT [FR]
- Generator JWT [PL]
- ตัวสร้าง JWT [TH]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]
- Generatore JWT [IT]
- Генератор JWT [RU]