เครื่องมือถอดรหัส JWT

ถอดรหัสส่วนหัวและข้อมูลของ JSON Web Token (ไม่ตรวจสอบลายเซ็น)

ลายเซ็นจะแสดงแบบดิบ — เครื่องมือนี้ไม่ตรวจสอบมัน หากต้องการตรวจสอบความถูกต้อง ให้ใช้เซิร์ฟเวอร์ที่มีคีย์ลับ/สาธารณะ

JWT คืออะไร?

JSON Web Token ประกอบด้วยสามส่วนที่เข้ารหัสด้วย Base64URL แยกด้วยจุด: ส่วนหัว (อัลกอริธึมที่ใช้), ข้อมูล (claims — โดยทั่วไปคือ ID ผู้ใช้ วันหมดอายุ, scopes), และลายเซ็น ส่วนหัวและข้อมูลไม่ได้ถูกเข้ารหัส แต่เพียงแค่เข้ารหัส — ใครก็ตามที่มีโทเค็นสามารถอ่านได้ ลายเซ็นพิสูจน์ว่าโทเค็นไม่ได้ถูกดัดแปลง

ตัวถอดรหัสจะแยกสามส่วน ถอดรหัส Base64URL สองส่วนแรก และจัดรูปแบบ JSON ให้อ่านง่าย มันไม่ตรวจสอบลายเซ็น — นั่นต้องการคีย์ลับหรือคีย์สาธารณะจากเซิร์ฟเวอร์ที่ออกโทเค็น อย่าคัดลอกโทเค็นในสภาพแวดล้อมการผลิตไปยังตัวถอดรหัสที่ไม่เชื่อถือได้; ตัวนี้ทำงานเฉพาะในเบราว์เซอร์และไม่เคยอัปโหลด แต่เป็นนิสัย ให้ใช้โทเค็นจากสภาพแวดล้อมการพัฒนาของคุณสำหรับการทดสอบ

กรณีการใช้งาน

  • ตรวจสอบ JWT ของบุคคลที่สาม — วางส่วนหัว Authorization เพื่ออ่านส่วนหัวและข้อมูลโดยไม่ต้องเชื่อถือดีบักเกอร์ระยะไกล
  • แก้ไขข้อผิดพลาดการตรวจสอบสิทธิ์ — ตรวจสอบว่า claims exp / iat / aud ตรงกับที่แบ็กเอนด์ของคุณคาดหวังเมื่อเกิด 401 ในการพัฒนา
  • ตรวจสอบโทเค็น OAuth / OIDC — ถอดรหัสโทเค็นการเข้าถึงหรือโทเค็น ID ที่ส่งคืนโดย Google, Auth0 หรือ Okta เพื่อดู claims ของผู้ใช้
  • สอนโครงสร้าง JWT — แสดงให้นักเรียนเห็นสามส่วนที่เข้ารหัสด้วย Base64 และวิธีการที่การลงนามปกป้องแต่ไม่เข้ารหัสข้อมูล

ตัวอย่าง

Decoding a sample token
Input
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzEiLCJleHAiOjE3MDAwMDAwMDB9.signature
Output
Header:
{"alg": "HS256"}

Payload:
{"sub": "user_1", "exp": 1700000000}

คำถามที่พบบ่อย

ตัวถอดรหัสตรวจสอบลายเซ็นหรือไม่?

ไม่ — การตรวจสอบต้องการคีย์ลับ (HS256) หรือคีย์สาธารณะ (RS256) ที่ใช้ในการลงนามโทเค็น ตัวถอดรหัสจะแสดงให้คุณเห็นว่าอยู่ข้างใน; ความไว้วางใจมาจากการตรวจสอบด้านเซิร์ฟเวอร์

เนื้อหาของ JWT ถูกเข้ารหัสหรือไม่?

ไม่ เพียงแค่เข้ารหัสด้วย Base64 ใครก็ตามที่มีโทเค็นสามารถอ่าน claims ได้ ใช้ JWE (JWT ที่เข้ารหัส) หาก claims ต้องการความลับ

claim `exp` หมายถึงอะไร?

Unix timestamp ที่โทเค็นหมดอายุ โทเค็นที่เกิน `exp` ควรถูกปฏิเสธโดยเซิร์ฟเวอร์ ตัวถอดรหัสจะทำเครื่องหมายโทเค็นที่หมดอายุให้คุณ

ฉันสามารถถอดรหัสโทเค็นที่มีข้อผิดพลาดได้หรือไม่?

หากส่วนใดส่วนหนึ่งไม่สามารถถอดรหัส Base64 หรือแปลงเป็น JSON ได้ ตัวถอดรหัสจะแสดงข้อผิดพลาดที่ชี้ไปยังส่วนที่มีปัญหา

โทเค็นของฉันถูกอัปโหลดหรือไม่?

ไม่ การถอดรหัสเป็น JavaScript ล้วน — โทเค็นของคุณอยู่ในอุปกรณ์ของคุณ