AliceLiumWork Smarter · Finish Faster

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

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

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

สมัครฟรีในไม่ถึงนาที ไม่ต้องใส่บัตรเครดิต — แล้วใช้ได้ทั้ง 196 เครื่องมือ

ไม่มีลายน้ำ เก็บเครื่องมือที่ใช้บ่อย
เริ่มด้วย Google
ฟรี ไม่มีโฆษณา

ทุกบัญชีได้เครดิตฟรีวันละ 5 สะสมได้ถึง 15 · งานละ 1 เครดิต

ทำงานในเครื่องคุณ ไฟล์ไม่ถูกอัปโหลด เห็นผลทันที ไม่ต้องรอคิว หักเครดิต 1 ต่อการใช้หนึ่งครั้ง · ไม่มีเน็ตก็ใช้ได้และไม่หัก
ติดตรงไหน?
1

ใส่ข้อมูล พิมพ์หรือวางลงในช่อง — ไม่ต้องอัปโหลด ไม่ต้องรอคิว

2

เห็นผลทันที ผลลัพธ์อัปเดตตอนพิมพ์ เพราะคำนวณในเครื่องคุณเอง

3

คัดลอกไปใช้ กดคัดลอกแล้ววางต่อได้เลย ปิดหน้าเว็บแล้วข้อมูลหายไปพร้อมกัน

อยากพิสูจน์เอง? ปิด Wi-Fi หรือถอดสายเน็ต แล้วลองใช้เครื่องมือนี้ดู — มันยังทำงานได้ตามปกติ เพราะไม่มีอะไรต้องส่งไปไหน · ส่วนการเปิดหน้านี้ใหม่ตอนไม่มีเน็ตมีเงื่อนไขอยู่ ไม่ได้ได้ทุกกรณี

คำถามเกี่ยวกับถอดรหัส JWT (อ่าน token)

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

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

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

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

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

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

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

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

เครื่องมือใกล้เคียง

บอกเราได้

เจอปัญหา หรืออยากได้อะไรเพิ่ม? บอกได้ตรงนี้เลย ไม่ต้องออกจากหน้านี้ไปหาอีเมล

ต้องเข้าสู่ระบบก่อนถึงจะส่งได้ — เพื่อให้เรารู้ว่าใครเจอปัญหา และกันข้อความอัตโนมัติโดยไม่ต้องให้คุณมานั่งพิสูจน์ว่าไม่ใช่บอท เข้าสู่ระบบ