ตัวถอดรหัส JWT
ถอดรหัส JSON Web Tokens (JWT) เพื่อดูข้อมูลส่วนหัว (Header) และข้อมูลชุดคำสั่ง (Payload claims) โดยไม่ต้องตรวจสอบลายเซ็น แสดงโครงสร้างโทเค็น วิเคราะห์ข้อมูล ตรวจสอบเวลาหมดอายุ และแก้ไขปัญหาการยืนยันตัวตนได้อย่างง่ายดาย ประมวลผลฝั่งไคลเอนต์ 100% เพื่อความเป็นส่วนตัว
🚀 ลองใช้ตัวอย่าง JWT เหล่านี้:
ตัวบล็อกโฆษณาของคุณทำให้เราไม่สามารถแสดงโฆษณาได้
MiniWebtool ให้ใช้งานฟรีเพราะมีโฆษณา หากเครื่องมือนี้ช่วยคุณได้ โปรดสนับสนุนเราด้วย Premium (ไม่มีโฆษณา + เร็วขึ้น) หรืออนุญาต MiniWebtool.com แล้วรีโหลดหน้าเว็บ
- หรืออัปเกรดเป็น Premium (ไม่มีโฆษณา)
- อนุญาตโฆษณาสำหรับ MiniWebtool.com แล้วรีโหลด
เกี่ยวกับ ตัวถอดรหัส JWT
ยินดีต้อนรับสู่ ตัวถอดรหัส JWT เครื่องมือออนไลน์ที่ทรงพลังสำหรับนักพัฒนาในการถอดรหัสและตรวจสอบ JSON Web Tokens (JWT) ได้ทันที ไม่ว่าคุณจะกำลังดีบักปัญหาการตรวจสอบสิทธิ์ ตรวจสอบ Claim ของโทเค็น หรือเรียนรู้เกี่ยวกับโครงสร้าง JWT เครื่องมือนี้จะช่วยแสดงองค์ประกอบของโทเค็นทั้งหมดด้วยรหัสสีที่ชัดเจน โดยไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ภายนอก
JSON Web Token (JWT) คืออะไร?
JSON Web Token (JWT อ่านว่า "จ็อต") เป็นมาตรฐานเปิด (RFC 7519) ที่กำหนดวิธีการที่กะทัดรัดและครบถ้วนในตัวเองสำหรับการส่งข้อมูลระหว่างฝ่ายต่างๆ อย่างปลอดภัยในรูปแบบอ็อบเจกต์ JSON โดยทั่วไป JWT จะถูกใช้สำหรับ:
- การตรวจสอบตัวตน (Authentication): หลังจากผู้ใช้เข้าสู่ระบบ คำขอที่ตามมาแต่ละรายการจะมี JWT รวมอยู่ด้วย เพื่อให้สามารถเข้าถึงเส้นทาง บริการ และทรัพยากรที่ได้รับอนุญาตด้วยโทเค็นนั้น
- การแลกเปลี่ยนข้อมูล: JWT สามารถส่งข้อมูลระหว่างฝ่ายต่างๆ ได้อย่างปลอดภัยเนื่องจากสามารถลงนามได้โดยใช้คีย์ลับ (HMAC) หรือคู่คีย์สาธารณะ/ส่วนตัว (RSA, ECDSA)
- การกำหนดสิทธิ์ (Authorization): เซิร์ฟเวอร์สามารถตรวจสอบ Claim ของโทเค็นเพื่อกำหนดสิทธิ์ของผู้ใช้โดยไม่ต้องสอบถามฐานข้อมูลในทุกคำขอ
อธิบายโครงสร้างของ JWT
JWT ประกอบด้วยสามส่วนที่คั่นด้วยจุด (.):
1. Header (สีแดง)
โดยปกติส่วน Header จะประกอบด้วยข้อมูลสองส่วน:
alg: อัลกอริทึมการลงนามที่ใช้ (เช่น HS256, RS256, ES256)typ: ประเภทของโทเค็น ซึ่งจะเป็น "JWT" เสมอ
2. Payload (สีม่วง)
ส่วน Payload จะมี Claims ซึ่งเป็นข้อความเกี่ยวกับผู้ใช้และข้อมูลเมตาเพิ่มเติม Claims มีสามประเภท:
- Registered claims: Claim ที่กำหนดไว้ล่วงหน้า เช่น
iss(ผู้ออก),exp(วันหมดอายุ),sub(หัวข้อ),aud(ผู้รับ) - Public claims: Claim ที่กำหนดขึ้นเองและลงทะเบียนใน IANA JSON Web Token Registry หรือกำหนดเป็น URI
- Private claims: Claim ที่ตกลงกันเองระหว่างฝ่ายต่างๆ (เช่น
user_id,role)
3. Signature (สีฟ้า)
Signature สร้างขึ้นโดยการรวม Header ที่เข้ารหัสแล้ว, Payload ที่เข้ารหัสแล้ว, คีย์ลับ และอัลกอริทึมที่ระบุใน Header เข้าด้วยกัน ทำหน้าที่รับประกันว่าโทเค็นไม่ได้ถูกแก้ไขดัดแปลง
รายการอ้างอิง JWT Claims ที่พบบ่อย
| Claim | ชื่อ | คำอธิบาย |
|---|---|---|
iss |
Issuer | ระบุผู้ที่ออก JWT (เช่น URL ของเซิร์ฟเวอร์ตรวจสอบสิทธิ์ของคุณ) |
sub |
Subject | ระบุหัวข้อของ JWT (มักจะเป็น ID ผู้ใช้ หรืออีเมล) |
aud |
Audience | ระบุผู้รับที่ JWT นี้มีวัตถุประสงค์เพื่อส่งถึง |
exp |
Expiration Time | Unix timestamp ซึ่งหลังจากเวลานี้ JWT จะใช้งานไม่ได้อีกต่อไป |
nbf |
Not Before | Unix timestamp ซึ่งก่อนเวลานี้ JWT จะยังใช้งานไม่ได้ |
iat |
Issued At | Unix timestamp เมื่อมีการออก JWT นี้ |
jti |
JWT ID | ตัวระบุเฉพาะสำหรับ JWT (มีประโยชน์สำหรับการป้องกัน Replay Attacks) |
อัลกอริทึมการลงนาม JWT
อัลกอริทึมแบบสมมาตร (HMAC)
HS256: HMAC โดยใช้ SHA-256 - ใช้คีย์ลับเดียวกันทั้งการลงนามและตรวจสอบHS384: HMAC โดยใช้ SHA-384HS512: HMAC โดยใช้ SHA-512
อัลกอริทึมแบบอสมมาตร (RSA/ECDSA)
RS256: RSA signature พร้อม SHA-256 - คีย์ส่วนตัวใช้ลงนาม คีย์สาธารณะใช้ตรวจสอบRS384: RSA signature พร้อม SHA-384RS512: RSA signature พร้อม SHA-512ES256: ECDSA โดยใช้เส้นโค้ง P-256 และ SHA-256ES384: ECDSA โดยใช้เส้นโค้ง P-384 และ SHA-384ES512: ECDSA โดยใช้เส้นโค้ง P-521 และ SHA-512
ข้อควรระวังด้านความปลอดภัย
การถอดรหัส VS การตรวจสอบความถูกต้อง
สำคัญ: เครื่องมือนี้ทำหน้าที่ ถอดรหัส JWT แต่ไม่ได้ ตรวจสอบความถูกต้อง ของมัน การถอดรหัสเป็นเพียงการเผยให้เห็นเนื้อหาที่ถูกเข้ารหัสด้วย Base64URL ในขณะที่การตรวจสอบความถูกต้องจำเป็นต้องใช้คีย์ลับเพื่อตรวจสอบ Signature อย่าเชื่อถือข้อมูลที่ถอดรหัสแล้วโดยไม่มีการตรวจสอบ Signature ฝั่งเซิร์ฟเวอร์
แนวทางปฏิบัติที่ดีที่สุด
- ตรวจสอบ Signature ฝั่งเซิร์ฟเวอร์เสมอ ก่อนที่จะเชื่อถือ Claim ใดๆ
- ใช้เวลาหมดอายุที่สั้น (
exp) - โดยปกติคือ 15 นาทีถึง 1 ชั่วโมงสำหรับ Access Tokens - อย่าเก็บข้อมูลที่ละเอียดอ่อน ไว้ใน Payload - เพราะมันเป็นเพียงการเข้ารหัสธรรมดา ไม่ใช่การเข้ารหัสลับ
- ใช้ HTTPS เพื่อป้องกันการดักจับโทเค็นระหว่างการส่งข้อมูล
- ตรวจสอบ Claim Audience (
aud) เพื่อป้องกันการนำโทเค็นไปใช้ผิดวัตถุประสงค์ - ใช้อัลกอริทึมแบบอสมมาตร (RS256, ES256) สำหรับระบบแบบกระจายที่หลายบริการต้องตรวจสอบโทเค็น
ความเป็นส่วนตัวและความปลอดภัย
ตัวถอดรหัส JWT นี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด:
- ไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์: JWT ของคุณจะไม่ถูกส่งไปที่ใดเลย
- การประมวลผลฝั่งไคลเอนต์: การถอดรหัสทั้งหมดเกิดขึ้นด้วย JavaScript ในเบราว์เซอร์ของคุณ
- ไม่มีการเก็บข้อมูล: เราไม่จัดเก็บ บันทึก หรือติดตามโทเค็นของคุณ
- ตรรกะแบบเปิดเผย: คุณสามารถตรวจสอบตรรกะการถอดรหัสได้ในเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์
คำถามที่พบบ่อย
JWT (JSON Web Token) คืออะไร?
JSON Web Token (JWT) คือมาตรฐานเปิด (RFC 7519) สำหรับการส่งข้อมูลระหว่างฝ่ายต่างๆ อย่างปลอดภัยในรูปแบบอ็อบเจกต์ JSON โดยทั่วไปจะใช้สำหรับการตรวจสอบตัวตน (Authentication) และการกำหนดสิทธิ์ (Authorization) ในเว็บแอปพลิเคชัน JWT ประกอบด้วยสามส่วน: Header (อัลกอริทึมและประเภทโทเค็น), Payload (ข้อมูล/claims) และ Signature (การตรวจสอบความถูกต้อง)
การถอดรหัส JWT ในเบราว์เซอร์ปลอดภัยหรือไม่?
ใช่ การถอดรหัส JWT ในเบราว์เซอร์นั้นปลอดภัย เนื่องจากส่วน Header และ Payload ถูกเข้ารหัสแบบ Base64URL เท่านั้น ไม่ใช่การเข้ารหัสลับ (Encryption) อย่างไรก็ตาม โปรดจำไว้ว่าการถอดรหัสไม่ได้เป็นการตรวจสอบ Signature ของโทเค็น อย่าเชื่อถือข้อมูลที่ถอดรหัสแล้วโดยไม่มีการตรวจสอบ Signature ฝั่งเซิร์ฟเวอร์อย่างถูกต้อง เครื่องมือนี้ถอดรหัสโทเค็นในเบราว์เซอร์ของคุณทั้งหมด ไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ใดๆ
ส่วนต่างๆ ของ JWT มีความหมายอย่างไร?
JWT มีสามส่วนที่คั่นด้วยจุด: 1) Header - ประกอบด้วยอัลกอริทึม (alg) และประเภทโทเค็น (typ) มักจะเป็น HS256 หรือ RS256 สำหรับการลงนาม 2) Payload - ประกอบด้วย Claims ซึ่งเป็นข้อความเกี่ยวกับผู้ใช้และข้อมูลเพิ่มเติม เช่น เวลาหมดอายุ (exp), เวลาที่ออก (iat), หัวข้อ (sub) ฯลฯ 3) Signature - สร้างขึ้นจากการลงนาม Header และ Payload ด้วยคีย์ลับ ใช้เพื่อตรวจสอบว่าโทเค็นไม่ได้ถูกดัดแปลง
ทำไมฉันถึงไม่สามารถตรวจสอบ Signature ด้วยเครื่องมือนี้ได้?
การตรวจสอบ Signature จำเป็นต้องใช้คีย์ลับ (สำหรับอัลกอริทึมแบบสมมาตร เช่น HS256) หรือคีย์สาธารณะ (สำหรับอัลกอริทึมแบบอสมมาตร เช่น RS256) เนื่องจากเครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณเพื่อความเป็นส่วนตัว จึงไม่สามารถเข้าถึงคีย์ลับของเซิร์ฟเวอร์ของคุณได้ ในการตรวจสอบ Signature ควรใช้ไลบรารีฝั่งเซิร์ฟเวอร์ เช่น jsonwebtoken (Node.js), PyJWT (Python) หรือ jwt-go (Go)
JWT Claims ที่พบบ่อยมีอะไรบ้าง?
Claims ที่ลงทะเบียนไว้ทั่วไป ได้แก่: iss (ผู้บริจาค), sub (หัวข้อ), aud (ผู้รับ), exp (เวลาหมดอายุ), nbf (ไม่ก่อนเวลา), iat (ออกเมื่อเวลา) และ jti (JWT ID) ส่วน Custom Claims อาจรวมถึง user_id, email, roles, permissions หรือข้อมูลเฉพาะของแอปพลิเคชัน สำหรับ Claims ที่เกี่ยวกับเวลา (exp, nbf, iat) จะอยู่ในรูปแบบ Unix timestamps
แหล่งข้อมูลเพิ่มเติม
อ้างอิงเนื้อหา หน้าหรือเครื่องมือนี้ว่า:
"ตัวถอดรหัส JWT" ที่ https://MiniWebtool.com/th// จาก MiniWebtool, https://MiniWebtool.com/
โดยทีม miniwebtool อัปเดตเมื่อ: 3 ก.พ. 2026