ถอดรหัส JWT Token
ดู Header · Payload ทันที
วาง JWT 3 ส่วน (xxxxx.yyyyy.zzzzz) ระบบถอด Base64URL ให้ทันที — ดู alg, วันหมดอายุ, เวลาออก token แบบภาษาไทย พร้อมตรวจสอบโครงสร้าง
วาง JWT เพื่อดู Header
วาง JWT เพื่อดู Payload
ถอดรหัสด้วย atob + TextDecoder แบบ Base64URL (JWT) บนเครื่องคุณเท่านั้น ไม่ส่ง token ออกนอกเบราว์เซอร์ · ทางลัด: Ctrl+Enter ถอดรหัส · Ctrl+K ล้าง
ถอดรหัสทันทีบนเครื่อง
วาง JWT แล้วเห็น Header/Payload เป็น JSON สวยทันที — รองรับ Base64URL, เติม padding ให้อัตโนมัติ ตรวจสอบโครงสร้างครบ
วันหมดอายุเข้าใจง่าย
แปลง exp/iat/nbf เป็นเวลาไทย (Asia/Bangkok) พร้อมบอกว่า “หมดอายุแล้ว” หรือ “เหลืออีก 2 ชม.” ให้ตัดสินใจได้ทันที
ปลอดภัย ไม่เก็บ token
ถอดรหัสด้วย JS บนเบราว์เซอร์เท่านั้น ลายเซ็นจะไม่ถูกยืนยัน (ต้องใช้ secret ที่เซิร์ฟเวอร์) — ปิดแท็บ token ก็หายทันที
คำถามที่พบบ่อย
JWT คืออะไร ทำไมมี 3 ส่วนคั่นด้วยจุด? +
JWT (JSON Web Token) คือสตริง 3 ส่วน header.payload.signature คั่นด้วยจุด — header บอกชนิด token และอัลกอริทึม (เช่น HS256/RS256), payload เก็บข้อมูล (claims) เช่น sub, name, exp, ส่วน signature ใช้ยืนยันว่าไม่มีใครแก้ payload ระหว่างทาง
ทำไมถอดรหัสได้โดยไม่ต้องมี secret? +
Header และ Payload ของ JWT ไม่ได้เข้ารหัส แค่เข้ารหัสแบบ Base64URL จึงถอดดูได้ทันทีด้วย atob ทุกคนที่มี token จะอ่านได้ — secret/public key มีไว้แค่ตรวจสอบลายเซ็นว่า token ถูกสร้างโดยผู้ถือ secret จริง ไม่ได้มีไว้ซ่อนข้อมูล อย่าใส่รหัสผ่านหรือข้อมูลอ่อนไหวใน payload
วาง JWT แล้วปลอดภัยไหม? token จะถูกส่งไปไหนไหม? +
ปลอดภัย — เครื่องมือนี้ถอดรหัสด้วย JavaScript บนเบราว์เซอร์คุณเท่านั้น (TextDecoder + atob) ไม่ส่ง token ไปเซิร์ฟเวอร์ ไม่เก็บ log และไม่ยืนยันลายเซ็น ปิดแท็บหรือกด “ล้างทั้งหมด” token จะหายทันที
ดูวันหมดอายุ (exp) ยังไง? “หมดอายุแล้ว” หมายถึงอะไร? +
ถ้า payload มี exp (เวลาหมดอายุเป็น Unix timestamp วินาที) ระบบจะแปลงเป็นเวลาไทย Asia/Bangkok พร้อมบอกว่าเหลืออีกกี่นาที/ชั่วโมง หรือหมดอายุไปแล้วกี่นาที — แถบสีเขียวคือยังใช้ได้ สีแดงคือหมดอายุแล้ว ควรขอ token ใหม่
ทำไมขึ้น “JWT ไม่ถูกต้อง” หรือถอด Header/Payload ไม่ได้? +
มักเกิดจาก token มีไม่ครบ 3 ส่วน มีช่องว่าง/ขึ้นบรรทัดใหม่ปนมา หรือ Base64URL ผิดรูปแบบ (เช่น copy มาเกิน/ขาดตัวอักษร) — ลบช่องว่างแล้ววางใหม่ หรือลองกดตัวอย่างเพื่อดูรูปแบบที่ถูกต้อง ถ้า token ไม่มี signature (เช่น header.payload.) จะยังถอด Header/Payload ได้แต่จะขึ้นว่า signature ว่าง