เครื่องถอดรหัส JWT
ถอดรหัสโทเค็น JWT ภายในเครื่องและปลอดภัยในเบราว์เซอร์ของคุณ
เกี่ยวกับ
นี่คือเครื่องมือออนไลน์ฟรีที่ออกแบบมาสำหรับนักพัฒนาเพื่อถอดรหัสและวิเคราะห์เนื้อหาของ JSON Web Tokens (JWT) อย่างปลอดภัย ตรวจสอบข้อมูลใน payload, อัลกอริทึมใน header, และตรวจสอบวันหมดอายุของโทเค็นได้อย่างรวดเร็ว
เนื่องจากโทเค็นมักจะมีข้อมูลการยืนยันตัวตนที่สำคัญ เครื่องมือนี้จึงทำงานแบบ "ประมวลผลฝั่งไคลเอนต์ (Client-Side)" ทั้งหมด ซึ่งช่วยให้มั่นใจได้ว่า JWT ที่คุณนำมาวางจะถูกประมวลผลภายในเบราว์เซอร์ของอุปกรณ์คุณเท่านั้น และจะ ไม่มี ข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์ของเราหรือจัดเก็บไว้ในอินเทอร์เน็ต
วิธีใช้งาน
- วางโทเค็น: นำสตริง JWT ที่เข้ารหัส (มักจะขึ้นต้นด้วย `ey...`) และวางลงในกล่องข้อความ "JWT ที่เข้ารหัส" ทางด้านซ้าย
- วิเคราะห์ทันที: เครื่องมือจะทำการแยกและถอดรหัสโทเค็นเป็นรูปแบบ JSON ที่สวยงาม พร้อมการเน้นไวยากรณ์ (syntax highlight) ทางด้านขวาโดยอัตโนมัติ
- ตรวจสอบ Header & Payload: กล่อง "Header" สีแดงจะแสดงข้อมูลอ้างอิง เช่น อัลกอริทึม ส่วนกล่อง "Payload" สีม่วงจะเปิดเผยข้อมูล claim จริง (เช่น ID ผู้ใช้, สิทธิ์)
- ตรวจสอบวันหมดอายุ: หาก payload มีค่า timestamp `exp` หรือ `iat` แบบมาตรฐาน เครื่องมือจะแปลงค่าเหล่านั้นเป็นเวลาตามระบบท้องถิ่นของคุณโดยอัตโนมัติ ป้ายสถานะจะแจ้งเตือนว่าโทเค็น "ถูกต้อง" หรือ "หมดอายุแล้ว"
คำศัพท์
- JWT (JSON Web Token)
- โทเค็นที่มีการเซ็นชื่อและเก็บข้อมูลในรูปแบบ JSON ซึ่งถูกนำมาใช้อย่างแพร่หลายในแอปพลิเคชันเว็บเพื่อเป็นกลไกในการยืนยันตัวตนและการอนุญาตสิทธิ์
- Header
- ส่วนแรกของ JWT ใช้สำหรับเก็บข้อมูลประเภทโทเค็น (typ) และอัลกอริทึมที่ใช้เซ็นชื่อ (alg) ซึ่งผ่านการเข้ารหัสแบบ Base64Url
- Payload
- ส่วนข้อมูลหลักของ JWT ประกอบด้วย claims หรือชุดข้อมูล เช่น ID ผู้ใช้, สิทธิ์, เวลาหมดอายุ (exp) และเวลาที่ออกโทเค็น (iat)
- Signature
- ส่วนป้องกันการปลอมแปลงของ JWT ถูกสร้างขึ้นโดยการใช้คีย์ลับ (secret key) เซ็นร่วมกับ header และ payload เพื่อยืนยันความถูกต้องของโทเค็น
- การเข้ารหัส Base64Url
- วิธีการเข้ารหัสที่แปลงข้อมูลไบนารีเป็นข้อความสตริงที่ปลอดภัยในการใช้งาน URL แต่ละส่วนของ JWT (Header, Payload, Signature) จะถูกเข้ารหัสด้วยวิธีนี้
- Claims
- ข้อมูลแต่ละรายการใน payload ของ JWT ประกอบด้วย claims มาตรฐาน เช่น iss (ผู้ออก), sub (เรื่อง), exp (หมดอายุ), iat (เวลาที่ออก) รวมถึง claims แบบกำหนดเองสำหรับแอปพลิเคชัน
- วันหมดอายุ (exp)
- ค่า UNIX timestamp ที่ระบุว่าโทเค็น JWT หมดอายุเมื่อใด เครื่องมือนี้จะแปลงค่าดังกล่าวให้อยู่ในรูปแบบวันที่และเวลาที่อ่านง่ายเพื่อให้สะดวกต่อการตรวจสอบ
กรณีการใช้งาน
- การดีบัก API: ตรวจสอบว่าเซิร์ฟเวอร์การยืนยันตัวตนหลังบ้าน (backend) ของคุณบันทึก ID ผู้ใช้ และ Roles ลงใน payload ของโทเค็นอย่างถูกต้องหรือไม่ โดยไม่ต้องเขียนสคริปต์ถอดรหัสขึ้นมาเอง
- การตรวจสอบข้อผิดพลาด 401 Unauthorized: นำโทเค็นจาก local storage ของเบราว์เซอร์หรือแท็บเครือข่ายของนักพัฒนา (network tab) เพื่อตรวจสอบได้อย่างรวดเร็วว่าเวลาหมดอายุ (`exp`) ผ่านไปแล้วหรือไม่
- การใช้งาน Frontend: ยืนยันโครงสร้าง JSON ของ JWT payload ที่ถอดรหัสแล้วแบบเสมือนจริง เพื่อใช้จัดวางโครงสร้างคุณสมบัติของผู้ใช้ในแอปพลิเคชัน React/Vue ส่วนหน้า (frontend) ของคุณให้ถูกต้อง
คำถามที่พบบ่อย
- ถาม:โทเค็น JWT ที่ฉันป้อนจะถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
- ไม่ การถอดรหัส JWT จะดำเนินการทั้งหมดด้วย JavaScript ภายในเบราว์เซอร์ โทเค็นจะไม่ถูกส่งออกไปภายนอก ดังนั้นแม้แต่โทเค็นที่มีข้อมูลสำคัญก็สามารถนำมาวิเคราะห์ได้อย่างปลอดภัย
- ถาม:เครื่องมือนี้สามารถยืนยันลายเซ็น (signature) JWT ได้หรือไม่?
- เครื่องมือนี้ออกแบบมาเพื่อถอดรหัส (parse) โครงสร้างของ JWT เป็นหลัก การตรวจสอบลายเซ็นต้องใช้คีย์ลับ (secret key) สำหรับการใช้งานจริง โปรดดำเนินการตรวจสอบทางฝั่งเซิร์ฟเวอร์
- ถาม:ฉันสามารถถอดรหัส JWT ที่หมดอายุแล้วได้หรือไม่?
- ได้ เครื่องมือนี้เพียงแค่ถอดรหัสและแสดงเนื้อหาของโทเค็น ดังนั้นจึงสามารถแยกวิเคราะห์โทเค็นได้โดยไม่คำนึงถึงสถานะการหมดอายุ นอกจากนี้คุณยังสามารถดูได้อย่างรวดเร็วว่าโทเค็นหมดอายุแล้วหรือยัง
- ถาม:ส่วนทั้งสามของ JWT (Header, Payload, Signature) มีการแยกสีหรือไม่?
- ใช่ ส่วนหัว (Header - สีแดง), ข้อมูล (Payload - สีม่วง) และลายเซ็น (Signature - สีฟ้า) จะถูกแยกให้เห็นอย่างชัดเจน โดยเนื้อหาในแต่ละส่วนจะแสดงเป็นรูปแบบ JSON
- ถาม:จะเกิดอะไรขึ้นถ้าฉันป้อนรูปแบบ JWT ที่ไม่ถูกต้อง?
- จะมีข้อความแสดงข้อผิดพลาดปรากฏขึ้นเพื่อแนะนำว่าส่วนใดของรูปแบบที่มีปัญหา โปรดป้อน JWT ที่ถูกต้องในรูปแบบ "xxx.yyy.zzz"
- ถาม:UNIX timestamp จะถูกแปลงโดยอัตโนมัติหรือไม่?
- ใช่ ค่า UNIX timestamp เช่น exp (วันหมดอายุ) และ iat (เวลาที่ออก) จะถูกแปลงเป็นรูปแบบวันและเวลาที่อ่านง่ายโดยอัตโนมัติ
- ถาม:ฉันสามารถใช้งานเครื่องมือนี้บนสมาร์ทโฟนได้หรือไม่?
- ได้ เครื่องมือนี้รองรับการแสดงผลแบบตอบสนอง (responsive) คุณจึงสามารถวาง ถอดรหัส และตรวจสอบ JWT ผ่านเบราว์เซอร์บนสมาร์ทโฟนได้เช่นกัน
ส่งความคิดเห็น
โปรดแจ้งให้เราทราบความคิดเห็นของคุณเพื่อช่วยปรับปรุงเครื่องมือ
การส่งความคิดเห็นถูกระงับชั่วคราว
เซิร์ฟเวอร์ไม่ว่างหรือระบบป้องกันสแปมทำงานอยู่ โปรดลองอีกครั้งในภายหลัง