ตัวสร้าง 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 เพื่อทดสอบโทเคนที่เสียหายหรือไม่มีลายเซ็นอย่างตั้งใจ โดยจะแสดงคำเตือนอย่างชัดเจน ห้ามยอมรับโทเคนประเภทนี้ในโค้ดที่ใช้งานจริงเด็ดขาด

เครื่องมือที่เกี่ยวข้อง

รหัสแปลงตัวเลขเป็นตัวอักษร

แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส 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

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