AliceLium
lock_open

ถอดรหัส JWT (อ่าน token)

แยก header / payload / signature พร้อมบอกเป็นภาษาไทยว่า token หมดอายุหรือยัง และมี role อะไรบ้าง — ทำในเบราว์เซอร์คุณเอง

lockทำงานในเครื่องคุณ ไฟล์ไม่ถูกอัปโหลด boltเห็นผลทันที ไม่ต้องรอคิว check_circleใช้ได้ไม่จำกัด ไม่นับโควตา
lock_open

เข้าสู่ระบบเพื่อใช้เครื่องมือนี้ — ฟรี

สมัครฟรีในไม่ถึงนาที ไม่ต้องใส่บัตรเครดิต · เก็บประวัติงานของคุณให้อัตโนมัติ

boltสมัครฟรี — ใช้ได้ทันที
มีบัญชีแล้ว?
เข้าสู่ระบบ
check_circleฟรี auto_deleteไฟล์ลบใน 1 ชม. historyเก็บประวัติงาน 7 วัน

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

help
เครื่องมือนี้ตรวจได้ไหมว่า token เป็นของแท้?
expand_more

ไม่ได้ และเราไม่อ้างว่าทำได้ เครื่องมือนี้ถอดข้อความออกมาให้อ่านอย่างเดียว ไม่ได้คำนวณหรือเทียบลายเซ็นเลยแม้แต่ขั้นตอนเดียว การยืนยันว่า token ของแท้ต้องใช้กุญแจ ของผู้ออก token มาคำนวณลายเซ็นซ้ำ ซึ่งเป็นงานที่ต้องทำในระบบหลังบ้านเท่านั้น ที่สำคัญคือใครก็แก้เนื้อหาใน payload แล้วเข้ารหัส base64url ใหม่ให้อ่านออกได้เหมือนกัน ดังนั้น “ถอดได้สวยงาม” ไม่ได้แปลว่า “token ใบนี้เชื่อถือได้” อย่าใช้ผลจากหน้านี้ตัดสินเรื่องสิทธิ์

help
ข้อมูลใน JWT ปลอดภัยไหม ใส่ข้อมูลลับได้หรือเปล่า?
expand_more

ใส่ไม่ได้เด็ดขาด สามส่วนของ JWT เข้ารหัสด้วย base64url ซึ่งเป็นแค่การแปลงตัวอักษร ไม่ใช่การเข้ารหัสลับ ใครที่ถือ token อยู่ในมือก็เปิดอ่านได้ทันทีเหมือนที่หน้านี้ทำ โดยไม่ต้องรู้กุญแจอะไรเลย จึงห้ามใส่รหัสผ่าน เลขบัตรประชาชน เลขบัตรเครดิต หรือความลับใด ๆ ลงใน payload ถ้าจำเป็นต้องซ่อนข้อมูลจริง ๆ ต้องใช้ JWE ซึ่งเป็นคนละมาตรฐานและเนื้อหาถูกเข้ารหัสไว้จริง เครื่องมือนี้จะบอกให้ถ้า token ที่วางเป็น JWE

help
ทำไมแปลง exp เป็นวันที่แล้วเวลาไม่ตรงกับที่คิดไว้?
expand_more

claim เวลาใน JWT (exp, iat, nbf) เก็บเป็นจำนวน “วินาที” นับจากปี ค.ศ. 1970 แบบ UTC หน้านี้แปลงเป็นเวลาไทย UTC+7 ให้เสมอ ไม่ได้อิงเขตเวลาของเครื่องคุณ คุณจึงเห็นเวลาเดียวกับที่ระบบไทยใช้จริงแม้เปิดจากต่างประเทศ อีกกรณีที่พบบ่อยคือระบบต้นทางเผลอใส่ค่าเป็นมิลลิวินาที ทำให้วันที่กระโดดไปหลายพันปี หน้านี้จะตรวจให้และขึ้นคำเตือนไว้ เพราะไลบรารีตรวจ token ส่วนใหญ่จะมองว่า token นั้นไม่หมดอายุ

help
หา role หรือ scope ใน token ไม่เจอ ต้องดูตรงไหน?
expand_more

แต่ละระบบเก็บสิทธิ์ไว้คนละที่ หน้านี้จึงรวบรวมให้จาก claim ที่พบบ่อยทั้งหมด ทั้ง scope, scp, role, roles, permissions, authorities, groups และ cognito:groups รวมถึงกรณีของ Keycloak ที่ซ่อนบทบาทไว้ซ้อนอีกชั้นใน realm_access.roles และ resource_access ของแต่ละแอป ซึ่งเป็นจุดที่คนหาไม่เจอบ่อยที่สุด ถ้ายังไม่พบอะไรเลย มักแปลว่าระบบหลังบ้านเก็บสิทธิ์ไว้ในฐานข้อมูลแล้วดูจาก sub แทน ไม่ได้แปลว่าผู้ใช้คนนั้นไม่มีสิทธิ์

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

ดูทั้งหมดchevron_right