ตัวถอดรหัส JWT
ถอดส่วนหัวและเพย์โหลดของ JWT ตรวจวันหมดอายุ — ออฟไลน์ทั้งหมด
เกี่ยวกับเครื่องมือนี้
JSON Web Token คือส่วน Base64URL สามส่วน — ส่วนหัว เพย์โหลด ลายเซ็น — เชื่อมกันด้วยจุด ตัวถอดรหัสนี้แยกโทเคนออกและแสดงส่วนหัวกับเพย์โหลดเป็น JSON ที่จัดรูปแบบแล้ว ระบุเคลมเวลามาตรฐาน (iat, exp, nbf) เป็นวันที่ที่คนอ่านได้ และบอกในพริบตาว่าโทเคนหมดอายุแล้วหรือยัง
การถอดรหัสไม่ใช่การตรวจสอบ: เพย์โหลดของ JWT ใด ๆ อ่านได้โดยทุกคนที่ถือมันไว้ เพราะ Base64URL คือการเข้ารหัส ไม่ใช่การเข้ารหัสลับ นั่นคือเหตุผลที่การวางโทเคนลงในเว็บสุ่ม ๆ เป็นความคิดที่ไม่ดี — หน้านี้เป็นข้อยกเว้น เพราะการถอดรหัสเกิดขึ้นในเบราว์เซอร์ของคุณทั้งหมดและโทเคนไม่เคยถูกส่งออกไป การตรวจลายเซ็นด้วยกุญแจลับหรือกุญแจสาธารณะอยู่นอกขอบเขตของตัวถอดรหัสออฟไลน์นี้โดยตั้งใจ
คำนำหน้า “Bearer ” จะถูกตัดออกให้อัตโนมัติ คุณจึงวางจากส่วนหัว Authorization ได้ตรง ๆ
คำถามที่พบบ่อย
- ปลอดภัยไหมที่จะวางโทเคนของระบบจริงที่นี่?
- โทเคนอยู่ในเบราว์เซอร์ของคุณ — หน้านี้ไม่ส่งคำขอเครือข่ายใด ๆ ที่มีข้อมูลของคุณ ซึ่งคุณยืนยันได้ในแท็บ Network ของเครื่องมือนักพัฒนา ถึงกระนั้น จงเคยชินกับการปฏิบัติต่อโทเคนที่ยังใช้งานอยู่เหมือนรหัสผ่าน: หากต้องแชร์ภาพหน้าจอ ให้ใช้โทเคนที่หมดอายุแล้วหรือโทเคนทดสอบ
- ทำไมโทเคนของฉันถอดรหัสไม่ได้?
- ตรวจดูว่ามีสามส่วนคั่นด้วยจุดพอดี และไม่มีการขึ้นบรรทัดใหม่จากการคัดลอกที่ตัดคำ โทเคนแบบทึบ (เช่นโทเคนของ GitHub หรือ Google จำนวนมาก) ไม่ใช่ JWT เลย — ไม่มีการถอดรหัสใดเปิดสตริงสุ่มที่ไม่เคยมี JSON อยู่ข้างในได้
- iat, exp และ nbf หมายถึงอะไร?
- เป็นเคลมมาตรฐานจาก RFC 7519 ทั้งหมดเป็นวินาทีแบบ unix: iat คือเวลาที่ออกโทเคน exp คือเวลาที่มันหมดความถูกต้อง และ nbf (“not before”) คือช่วงเวลาแรกสุดที่ยอมรับมันได้ เครื่องมือนี้แปลงแต่ละค่าเป็นวันที่ที่อ่านได้และเทียบ exp กับนาฬิกาของคุณ
- เครื่องมือนี้ตรวจสอบลายเซ็นได้ไหม?
- ไม่ได้ — และเครื่องหมายถูกสีเขียวจากเครื่องมือออนไลน์ก็ไม่ควรถูกใช้ตัดสินใจเรื่องความปลอดภัยอยู่แล้ว จงตรวจลายเซ็นในระบบหลังบ้านด้วยไลบรารีที่ยังมีการดูแล (jose, jsonwebtoken, PyJWT) เทียบกับกุญแจจริงของผู้ออกโทเคน