ตัวสร้าง 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 เพื่อทดสอบโทเคนที่เสียหายหรือไม่มีลายเซ็นอย่างตั้งใจ โดยจะแสดงคำเตือนอย่างชัดเจน ห้ามยอมรับโทเคนประเภทนี้ในโค้ดที่ใช้งานจริงเด็ดขาด
เครื่องมือที่เกี่ยวข้อง
รหัสแปลงตัวเลขเป็นตัวอักษร
แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส A=1, B=2 (A1Z26) สำหรับปริศนา คำทาย และเบาะแสในห้องเอสเคปรูม
เครื่องสร้างแฮช SHA1
สร้างค่าแฮช SHA-1 (ยาว 40 ตัวอักษรเฮกซาเดซิมอล) จากข้อความใดๆ เหมาะอย่างยิ่งสำหรับการตรวจสอบค่าเช็คซัมแบบดั้งเดิม รหัสประจำออบเจกต์ของ Git และการตรวจสอบความสมบูรณ์ที่ไม่เกี่ยวข้องกับความปลอดภัย
เครื่องสร้างข้อมูล SHA256
สร้างค่าแฮช SHA-256 จากข้อความใดๆ โดยให้ผลลัพธ์เป็นรหัสฐานสิบหก 64 ตัวอักษร ซึ่งใช้อัลกอริทึมเดียวกันกับที่ใช้ในการสร้างที่อยู่บิตคอยน์ ใบรับรอง TLS และลายเซ็น JWT
เครื่องมือสร้างคีย์ SSH
สร้างคู่คีย์ SSH แบบ RSA (2048, 3072 หรือ 4096 บิต) ทั้งหมดในเบราว์เซอร์ของคุณ ทั้งคีย์ส่วนตัวและคีย์สาธารณะไม่ออกจากอุปกรณ์ของคุณ เพิ่มความคิดเห็นและดาวน์โหลดทั้งสองได้
เครื่องมือเข้ารหัสข้อความ
เข้ารหัสและถอดรหัสข้อความโดยใช้ AES พร้อมรหัสผ่าน เพื่อให้มีเพียงผู้รับเท่านั้นที่สามารถอ่านข้อความได้
เครื่องสร้างแฮช SHA256
สร้างแฮช SHA-256 จากข้อความใดก็ได้ ผลลัพธ์เป็นเฮกซาเดซิมอลตัวพิมพ์เล็ก 64 ตัวแบบกำหนดค่าแน่นอน อัลกอริทึมที่อยู่เบื้องหลัง Bitcoin ใบรับรอง TLS และลายเซ็น JWT
เครื่องมือนี้มีให้บริการในภาษาอื่น
- مولد JWT [AR]
- Generador de JWT [ES]
- JWT-generator [NL]
- JWT 생성기 [KO]
- Générateur de JWT [FR]
- Bộ tạo JWT [VI]
- Generator JWT [PL]
- JWT-generator [SV]
- Gerador de JWT [PT]
- Generator JWT [ID]
- JWTジェネレーター [JA]
- JWT-Generator [DE]
- JWT Generator [EN]
- Generatore JWT [IT]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]