ตัวสร้าง JWT

สร้าง JWT

สร้างและลงนามในโทเคน JWT ได้โดยตรงผ่านเบราว์เซอร์ โดยกรอกข้อมูลที่ต้องการระบุ (เช่น sub, aud, exp เป็นต้น รวมถึงข้อมูลเฉพาะที่ต้องการ) เลือกอัลกอริทึมที่ใช้ (HS256 พร้อมคีย์ร่วม หรือ RS256/ES256 พร้อมคีย์ส่วนตัว) จากนั้นเครื่องมือจะสร้างโทเคนที่ประกอบด้วยสามส่วน ซึ่งเหมาะอย่างยิ่งสำหรับการพัฒนาในระดับท้องถิ่น การทดสอบภาระงาน และการจำลองปัญหาด้านการยืนยันตัวตน

วิธีสร้าง JWT

  1. 1

    เขียนข้อมูลที่ต้องการส่ง (payload)

    คำขอมาตรฐาน (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) พร้อมด้วยคำขอเฉพาะที่แอปพลิเคชันของคุณคาดว่าจะต้องใช้

  2. 2

    เลือกอัลกอริทึม

    HS256/384/512 โดยใช้ความลับร่วม (shared secret) หรือ RS256/ES256 โดยใช้กุญแจส่วนตัวในรูปแบบ PEM

  3. 3

    ให้กุญแจ

    ให้ใช้ข้อความลับที่แชร์ร่วมกันสำหรับ HMAC หรือวางคีย์ส่วนตัวสำหรับ RSA/ECDSA โดยข้อมูลทั้งสองจะถูกเก็บไว้ในเบราว์เซอร์ของคุณ

  4. 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

เครื่องมือนี้มีให้บริการในภาษาอื่น