ไม่มีการอัปโหลด, 100% ในเครื่อง, ไม่มีบัญชี

ตัวถอดรหัส JWT

วาง JWT เพื่อดูส่วนหัว เพย์โหลด และการหมดอายุ ไม่มีการส่ง token ไปที่ใด ลายเซ็นไม่ได้รับการตรวจสอบ, ใช้เพื่อตรวจสอบเท่านั้น

ตัวถอดรหัส JWT ทำงานอย่างไร

JWT Decoder แบ่ง JSON Web Token เป็นสามส่วน: header, payload และ signature แล้วแสดง header และ payload เป็น JSON ที่ format แล้ว การถอดรหัสทำในเครื่องในเบราว์เซอร์โดยการ base64url-decode แต่ละส่วน token ของคุณไม่เคยถูกส่งไปยังเซิร์ฟเวอร์ใด เครื่องมือไม่ตรวจสอบ signature แต่เพียงแสดงสิ่งที่อยู่ภายใน claims ของ token

ความแตกต่างนี้มีความสำคัญด้านความปลอดภัย: การดู JWT ที่ถอดรหัสแล้วบอกคุณว่า claims มีอะไร (user ID, expiry, roles, scopes) แต่ไม่ยืนยันว่า token ออกโดย authority ที่ถูกต้องหรือไม่ได้ถูกแก้ไข การตรวจสอบ signature ต้องการ public key หรือ shared secret ของผู้ออก ซึ่งคุณไม่ควรวางลงในเครื่องมือสาธารณะ ใช้ decoder นี้สำหรับการตรวจสอบและ debug เท่านั้น

วิธีใช้ ตัวถอดรหัส JWT ทีละขั้นตอน

  1. วาง JWT string เต็มรูปแบบ (สาม segment ที่คั่นด้วยจุดที่ base64url encode) ลงในช่องอินพุต
  2. ส่วน header และ payload ปรากฏทันทีเป็น JSON ที่ format แล้ว
  3. ตรวจสอบฟิลด์ exp ใน payload เพื่อดู expiry timestamp (Unix epoch seconds)
  4. segment signature แสดงตามที่เป็น เครื่องมือนี้ไม่ตรวจสอบ

กรณีการใช้งานที่พบบ่อย

  • นักพัฒนาที่ debug ปัญหาการ authentication ต้องการอ่าน claims ภายใน JWT เพื่อยืนยันว่ามี scopes และ roles ที่ถูกต้อง
  • วิศวกร QA ตรวจสอบฟิลด์ exp ของ access token เพื่อยืนยันว่า expiry ถูกตั้งค่าเป็น duration ที่คาดหวัง
  • ผู้ตรวจสอบความปลอดภัยตรวจสอบ JWT จากบริการของบุคคลที่สามเพื่อเข้าใจว่า encode ข้อมูลผู้ใช้อะไรก่อนยอมรับ
  • วิศวกร backend แก้ปัญหา 401 error โดยตรวจสอบว่า aud (audience) claim ของ token ตรงกับ API identifier ที่คาดหวัง

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

เครื่องมือนี้ตรวจสอบ JWT signature หรือไม่?

ไม่ เครื่องมือเพียง base64url-decode ส่วน header และ payload เพื่อแสดงเนื้อหาเป็น JSON การตรวจสอบ signature ต้องการ secret key หรือ public key ของผู้ออก ซึ่งคุณไม่ควรวางที่นี่ payload ที่ถอดรหัสแล้วที่ดูถูกต้องอาจยังมี signature ที่ไม่ถูกต้อง ควรตรวจสอบ signature ฝั่งเซิร์ฟเวอร์โดยใช้ JWT library ที่เชื่อถือได้เสมอ

JWT token ของฉันถูกส่งไปยังเซิร์ฟเวอร์เมื่อฉันวางที่นี่หรือไม่?

ไม่ การถอดรหัสเป็นสามการเรียก atob (หรือ TextDecoder บน raw bytes) ที่ทำงานทั้งหมดใน JavaScript engine ของเบราว์เซอร์ ไม่มีสิ่งใดที่คุณวางที่นี่ออกจากแท็บเบราว์เซอร์ นี่คือวิธีเดียวที่ปลอดภัยในการตรวจสอบ JWT ที่มี claims ผู้ใช้ส่วนตัว: local อย่างสมบูรณ์ ไม่มีคำขอเครือข่าย

ความแตกต่างระหว่าง segment header, payload และ signature คืออะไร?

JWT มีสาม segment ที่ base64url-encode คั่นด้วยจุด header ระบุ algorithm ที่ใช้ sign token (เช่น HS256 หรือ RS256) payload มี claims: ข้อเท็จจริงเกี่ยวกับ subject และ metadata เพิ่มเติม (expiry, issuer, audience, custom claims) signature เป็นค่า cryptographic ที่คำนวณจาก header และ payload โดยใช้ key ของผู้ออก ทำให้ผู้รับตรวจสอบได้ว่า token ไม่ถูกแก้ไข

exp หมายความว่าอะไรใน payload?

claim 'exp' คือ expiration time ของ token แสดงเป็น Unix timestamp (integer seconds นับจาก 1 มกราคม 1970 UTC) หากเวลาปัจจุบันมากกว่า 'exp' token หมดอายุและควรถูกปฏิเสธโดยเซิร์ฟเวอร์ที่ตรวจสอบ เครื่องมือแสดงค่าตัวเลขดิบ คุณสามารถแปลงได้โดยใช้เครื่องมือ timestamp บนไซต์นี้ ป้ายหมดอายุหรือใช้ได้เปรียบเทียบตัวเลขนั้นกับนาฬิกาบนอุปกรณ์ของคุณเอง ดังนั้นเครื่องที่ตั้งเวลาผิดก็จะตัดสิน token ผิดไปด้วย นี่เป็นเพียงข้อบ่งชี้ ไม่ใช่สิ่งทดแทนเซิร์ฟเวอร์ที่ตรวจสอบลายเซ็นจริง

ฉันสามารถถอดรหัส opaque หรือ reference token ด้วยเครื่องมือนี้ได้หรือไม่?

ไม่ Opaque tokens (บางครั้งเรียกว่า reference tokens) เป็นสตริงแบบสุ่มที่ไม่มีข้อมูลผู้ใช้ในตัวเอง ต้องส่งไปยัง introspection endpoint ของผู้ออกเพื่อดึง claims ที่เกี่ยวข้อง เครื่องมือนี้ทำงานเฉพาะกับ JWTs แบบ self-contained ในรูปแบบสามส่วนมาตรฐาน