ถอดรหัส JWT
ถอดรหัส header และ payload ของ JSON Web Token โดยไม่ส่งโทเค็นไปที่ใดเลย
กำลังโหลดเครื่องมือ…
ถอดรหัส JSON Web Token: วางโทเค็นเพื่อดู header และ payload เป็น JSON พร้อมแปลง claim ที่เป็นเวลา เช่น เวลาหมดอายุ ให้เป็นวันที่ที่อ่านได้ ใช้ตรวจเนื้อหาของโทเค็นและดูว่าหมดอายุหรือยังเมื่อการล็อกอินหรือการเรียก API ล้มเหลว
วิธีใช้
- วาง JWT ที่ขึ้นต้นด้วย eyJ ลงใน "โทเค็น" ระบบจะไม่สนใจคำว่า "Bearer " ที่อยู่ข้างหน้า
- ดู JSON ใน "Header" และ "Payload" และส่วน "Signature"
- ในตาราง "Claims" ดูเวลาที่ออกและเวลาหมดอายุ รวมถึงสถานะ เช่น "หมดอายุ" หรือ "ยังใช้ได้"
- หากต้องการตรวจว่าโทเค็นเชื่อถือได้หรือไม่ ให้ป้อนคีย์ลับหรือคีย์สาธารณะใน "ตรวจสอบลายเซ็น (ไม่บังคับ)"
หลักการทำงาน
- JWT มี 3 ส่วนคั่นด้วยจุด: header.payload.signature สองส่วนแรกเป็น JSON ที่เข้ารหัสแบบ Base64url จึงอ่านได้โดยไม่ต้องใช้คีย์ ค่า exp, nbf และ iat คือจำนวนวินาทีนับจาก 1 มกราคม 1970 (UTC)
- การตรวจสอบใช้ Web Crypto สำหรับ HS, RS, PS และ ES (256/384/512) และ EdDSA ในเบราว์เซอร์ที่รองรับ คีย์สาธารณะใส่เป็น PEM, ใบรับรอง, JWK หรือ JWKS ได้ โทเค็นที่มี alg เป็น "none" จะมีคำเตือน
- การถอดรหัสและการตรวจสอบทำงานในเบราว์เซอร์ของคุณ โทเค็นและคีย์จะไม่ถูกเก็บหรือส่งไปที่ใด ถึงอย่างนั้นก็ควรใช้โทเค็นทดสอบหรือโทเค็นที่หมดอายุแล้ว แทนโทเค็นจากระบบที่ใช้งานจริง
คำถามที่พบบ่อย
- จะดูได้อย่างไรว่า JWT หมดอายุเมื่อไร
- วางโทเค็นลงไป "หมดอายุเมื่อ" (exp) ในตาราง "Claims" จะแสดงวันที่และเวลา และคอลัมน์สถานะจะแสดงเวลาที่เหลือหรือ "หมดอายุ"
- JWT เข้ารหัสลับไว้หรือไม่
- JWT ทั่วไป (JWS) มีการลงลายเซ็น แต่ไม่ได้เข้ารหัสลับ ใครก็อ่านเนื้อหาได้ อย่าใส่รหัสผ่านหรือข้อมูลลับอื่น ๆ ลงไป โทเค็นที่มี 5 ส่วนคือ JWE ที่เข้ารหัสลับแล้ว และอ่านไม่ได้หากไม่มีคีย์
- การถอดรหัสพิสูจน์ได้ไหมว่าโทเค็นเป็นของจริง
- ไม่ได้ ใครก็แก้ไขเนื้อหาได้ สิ่งที่เชื่อถือได้มีเพียงลายเซ็นที่ตรวจด้วยคีย์ที่ถูกต้องเท่านั้น ป้อนคีย์ใน "ตรวจสอบลายเซ็น (ไม่บังคับ)" เพื่อดูว่าขึ้น "ลายเซ็นถูกต้อง" หรือ "ลายเซ็นไม่ถูกต้อง"