ตัวสร้าง JWT
สร้างและลงนามในโทเคน JWT ได้โดยตรงผ่านเบราว์เซอร์ โดยกรอกข้อมูลที่ต้องการระบุ (เช่น sub, aud, exp เป็นต้น รวมถึงข้อมูลเฉพาะที่ต้องการ) เลือกอัลกอริทึมที่ใช้ (HS256 พร้อมคีย์ร่วม หรือ RS256/ES256 พร้อมคีย์ส่วนตัว) จากนั้นเครื่องมือจะสร้างโทเคนที่ประกอบด้วยสามส่วน ซึ่งเหมาะอย่างยิ่งสำหรับการพัฒนาในระดับท้องถิ่น การทดสอบภาระงาน และการจำลองปัญหาด้านการยืนยันตัวตน
วิธีสร้าง JWT
-
1
เขียนข้อมูลที่ต้องการส่ง (payload)
คำขอมาตรฐาน (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) พร้อมด้วยคำขอเฉพาะที่แอปพลิเคชันของคุณคาดว่าจะต้องใช้
-
2
เลือกอัลกอริทึม
HS256/384/512 โดยใช้ความลับร่วม (shared secret) หรือ RS256/ES256 โดยใช้กุญแจส่วนตัวในรูปแบบ PEM
-
3
ให้กุญแจ
ให้ใช้ข้อความลับที่แชร์ร่วมกันสำหรับ HMAC หรือวางคีย์ส่วนตัวสำหรับ RSA/ECDSA โดยข้อมูลทั้งสองจะถูกเก็บไว้ในเบราว์เซอร์ของคุณ
-
4
สร้างขึ้น
ผลลัพธ์คือโทเคนที่มีสัญลักษณ์ ให้คัดลอกมาใช้ในการทดสอบ และถอดรหัสด้วย JWT Decoder เพื่อตรวจสอบ
น้ำหนักข้อมูลมาตรฐานสำหรับโทเคนผู้ใช้ที่ผ่านการยืนยันตัวตน
{
"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 ไบต์) หากน้อยกว่านี้จะสามารถถูกโจมตีด้วยวิธี brute-force ได้
- กุญแจ RSA ควรมีขนาดอย่างน้อย 2048 บิต โดยสำหรับโทเคนที่มีอายุการใช้งานยาวนานควรใช้ขนาด 3072 หรือ 4096 บิต
- ECDSA (ES256) มีระดับความปลอดภัยเทียบเท่ากับ RSA 3072 โดยใช้คีย์ที่มีขนาดเล็กกว่ามาก และกระบวนการลงนามที่รวดเร็วกว่า
แนวทางการกำหนดระยะเวลาหมดอายุ
| ประเภทโทเคน | ระยะเวลาปกติของ exp |
|---|---|
| โทเคนการเข้าถึง | 5–60 นาที |
| โทเคนรีเฟรช | จากหลายวันถึงหลายสัปดาห์ |
| การตั้งค่ารหัสผ่านใหม่ | ใช้เวลา 5–15 นาที |
| การยืนยันอีเมล | 24 ชั่วโมง |
| จากบริการหนึ่งไปยังอีกบริการหนึ่ง | ใช้เวลา 1–5 นาที (สั้น) |
โทเค็นที่มีอายุสั้นและสามารถอัปเดตได้ถือเป็นรูปแบบที่ใช้กันอย่างแพร่หลายในปัจจุบัน ในขณะที่โทเค็นการเข้าถึงที่มีอายุยาวนานนั้นยากมากที่จะเพิกถอนเมื่อถูกโจมตีหรือขัดข้อง
ข้อผิดพลาดที่พบบ่อย
- การนำรหัสลับสำหรับการทดสอบกลับมาใช้ใหม่ในระบบจริง เครื่องสร้างจะระบุว่ารหัสลับแบบ HS256 และ JWT ที่สร้างขึ้นเป็นเพียงสำหรับการทดสอบเท่านั้น หากรหัสลับดูไม่น่าเชื่อถือ โปรดเชื่อคำเตือนนี้อย่างเคร่งครัด
- การลงนามโดยไม่มี
exp: JWT ที่ไม่มีกำหนดหมดอายุจะมีผลใช้งานตลอดไป ควรตั้งค่าexpเสมอ เว้นแต่จะมีเหตุผลอันจำเป็นอย่างยิ่งและมีรายชื่อการเพิกถอนการใช้งาน - การใช้
algจากส่วนหัวข้อมูลในฝั่งตรวจสอบ ควรกำหนดอัลกอริทึมที่อนุญาตไว้ในรายชื่อขาว (whitelist) บนฝั่งตรวจสอบอยู่เสมอ และไม่ควรปฏิบัติตามสิ่งที่โทเคนร้องขอ - การวางกุญแจส่วนตัวจริงไว้ที่นี่ เครื่องสร้างกุญแจนี้ทำงานในเบราว์เซอร์ของคุณ แต่ควรปฏิบัติต่อกุญแจส่วนตัวเสมือนเป็นความลับ โดยใช้กุญแจสำหรับทดสอบ ไม่ใช่กุญแจสำหรับใช้งานจริง
คำถามที่พบบ่อย
ไม่ กระบวนการลงนามจะดำเนินการผ่านเบราว์เซอร์ของคุณโดยใช้ Web Crypto API กุญแจจะไม่เคยออกจากเครื่องของคุณแต่อย่างใด อย่างไรก็ตาม สำหรับกุญแจสำหรับใช้งานจริง ควรสร้างและลงนามในสภาพแวดล้อมที่ควบคุมได้ ไม่ใช่ในเบราว์เซอร์
HS256 เหมาะอย่างยิ่งสำหรับระบบโมโนลิธที่ใช้เครื่องหมายการลงนามและกระบวนการตรวจสอบในระบบเดียวกัน ขณะที่ RS256 หรือ ES256 จะเหมาะสมกว่าเมื่อผู้ออกใบรับรองแยกจากผู้ตรวจสอบ เนื่องจากสามารถแบ่งปันกุญแจสาธารณะได้โดยไม่ต้องเปิดเผยกุญแจการลงนาม
โดยทั่วไป ระยะเวลาในการใช้งานโทเคนเข้าถึงจะอยู่ที่ประมาณ 5–15 นาที ควรใช้โทเคนรีเฟรชที่มีอายุการใช้งานยาวนานขึ้นเพื่อให้ประสบการณ์การใช้งาน (UX) เป็นไปอย่างราบรื่น และห้ามออก JWT โดยไม่มีคำขอประเภท exp เลย
เครื่องมือนี้รองรับการส่งข้อมูล alg: none เพื่อทดสอบโทเคนที่เสียหายหรือไม่มีลายเซ็นอย่างตั้งใจ โดยจะแสดงคำเตือนอย่างชัดเจน ห้ามยอมรับโทเคนประเภทนี้ในโค้ดที่ใช้งานจริงเด็ดขาด
เครื่องมือที่เกี่ยวข้อง
ตัวเข้ารหัสไฟล์ Base64
เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด
ตัวตรวจสอบ checksum
คำนวณ checksum แบบ MD5, SHA-1, SHA-256, SHA-384, SHA-512 หรือ CRC32 ของข้อความใดก็ได้ แล้วเปรียบเทียบกับค่าที่คาดไว้เพื่อดูผลชัดเจนว่าตรงกันหรือไม่
ตัวสร้าง CSR
สร้าง Certificate Signing Request แบบ PEM และคีย์ส่วนตัว RSA ที่จับคู่กัน ระบุ Common Name ช่องข้อมูลองค์กร และขนาดคีย์ (2048, 3072 หรือ 4096 บิต)
ตัวระบุการเข้ารหัส
วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ
เครื่องแปลง ETH เป็น USD
แปลงอีเธอเรียม (ETH) เป็นดอลลาร์สหรัฐด้วยอัตรา ETH/USD แบบเรียลไทม์หรืออัตราที่คุณกำหนดเอง ดูว่าจำนวน ETH เท่าใดก็ได้มีมูลค่าเป็น USD เท่าไร
เครื่องมือสร้างใบรับรอง SSL
สร้างใบรับรอง SSL/TLS ที่ลงนามด้วยตนเองและคีย์ส่วนตัว RSA ทั้งหมดในเบราว์เซอร์ กำหนด Common Name, SAN และช่วงอายุเอง ส่งออกเป็น PEM
เครื่องมือนี้มีให้บริการในภาษาอื่น
- JWT-generator [SV]
- مولد JWT [AR]
- JWT-generator [NL]
- Bộ tạo JWT [VI]
- Generador de JWT [ES]
- JWTジェネレーター [JA]
- Generator JWT [ID]
- Générateur de JWT [FR]
- JWT-Generator [DE]
- Generator JWT [PL]
- Gerador de JWT [PT]
- JWT 생성기 [KO]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]
- Generatore JWT [IT]