เครื่องมือนักพัฒนา
ดีบักเกอร์ออนไลน์ JSON Web Token

การถอดรหัส JWT ออนไลน์

ตรวจสอบส่วนหัวและเพย์โหลดของ JSON Web Token เครื่องมือนี้ไม่ได้ตรวจสอบลายเซ็นและการประมวลผลที่อยู่ในเบราว์เซอร์ของคุณ

อินพุตโทเค็น JWT

วาง JWT ด้านล่างเพื่อถอดรหัส ตรวจสอบ และยืนยันทันที

กำลังรออินพุต JSON Web Token

ถอดรหัสส่วนหัว

เจสัน
หลังจากวาง JWT แล้ว เนื้อหาที่แยกวิเคราะห์จะแสดงที่นี่

ถอดรหัสเพย์โหลด

การเรียกร้อง
หลังจากวาง JWT แล้ว เนื้อหาที่แยกวิเคราะห์จะแสดงที่นี่

การตรวจสอบลายเซ็น JWT

เลือก
ลายเซ็นจะแสดงที่นี่หลังจากการถอดรหัส

ป้อนรหัสลับเพื่อใช้เมื่อออก JWT การยืนยัน HS256 ดำเนินการในเบราว์เซอร์ของคุณ

เจดับบลิว

จะใช้การถอดรหัส JWT ออนไลน์ได้อย่างไร

  1. วางโทเค็น JWT ที่สมบูรณ์
  2. กด "ถอดรหัส JWT" เพื่อแยกวิเคราะห์ส่วนหัว เพย์โหลด และลายเซ็น
  3. เมื่อคุณต้องการยืนยันลายเซ็น ให้ป้อนความลับแล้วใช้ "ยืนยันลายเซ็น"
เจสัน

JSON Web Token คืออะไร

JWT เป็นรูปแบบโทเค็นที่ใช้กันทั่วไปสำหรับการเข้าสู่ระบบ การตรวจสอบ API และการอนุญาตระหว่างบริการ ประกอบด้วยสามส่วน: ส่วนหัว เพย์โหลด และลายเซ็น

เนื้อหาของเพย์โหลดสามารถถอดรหัสและอ่านได้ และไม่ควรใส่ข้อมูลที่ละเอียดอ่อนในการอ้างสิทธิ์ของ JWT

ฮส

JWT ตรวจสอบและรักษาความปลอดภัย

หน้านี้รองรับการตรวจสอบและสร้างลายเซ็น HS256 ทำให้ง่ายต่อการตรวจสอบว่าโทเค็นสภาพแวดล้อมการทดสอบถูกสร้างขึ้นด้วยข้อมูลลับเดียวกันหรือไม่

การถอดรหัส การเข้ารหัส และการตรวจสอบลายเซ็น JWT ทั้งหมดทำได้ในเบราว์เซอร์

ฐานความรู้ JWT SEO

คำแนะนำฉบับสมบูรณ์เกี่ยวกับการถอดรหัส JWT ออนไลน์: JSON Web Token คืออะไร จะตรวจสอบได้อย่างไร และใช้งานอย่างไรอย่างปลอดภัย

หากคุณกำลังค้นหา "JWT Decoder", "JWT Decoder", "JSON Web Token Parsing", "JWT Verify" หรือ "JWT Encoder" โดยทั่วไปแล้วจะหมายความว่าคุณมีโทเค็นอยู่แล้ว และจำเป็นต้องเข้าใจส่วนหัว, เพย์โหลด, เวลาหมดอายุ, อัลกอริธึมการเซ็นชื่อ และการอ้างสิทธิ์อย่างรวดเร็ว หน้านี้ไม่เพียงแต่มีเครื่องมือถอดรหัส JWT ออนไลน์เท่านั้น แต่ยังจัดระเบียบความรู้พื้นฐานของ JWT ที่นักพัฒนาสอบถามบ่อยครั้ง

เจดับบลิวทีคืออะไร?

JWT เป็นตัวย่อของ JSON Web Token เป็นรูปแบบโทเค็นที่ใช้ JSON เพื่อแสดงข้อมูล จากนั้นแปลงเป็นสตริงแบบง่าย มักใช้ในเว็บไซต์แยกส่วนหน้าและส่วนหลัง, App API, การเข้าสู่ระบบของสมาชิก, SSO การลงชื่อเพียงครั้งเดียว, การอนุญาตไมโครเซอร์วิส และการแลกเปลี่ยนข้อมูลระหว่างบริการ

การถอดรหัส JWT ไม่จำเป็นต้องใช้รหัสผ่านเนื่องจากส่วนหัวและเพย์โหลดมีการเข้ารหัส Base64URL เท่านั้น ไม่ได้เข้ารหัส ใครก็ตามที่ได้รับโทเค็นสามารถใช้ JWT Decoder เพื่อดูเนื้อหาเพย์โหลดได้ ดังนั้นการอ้างสิทธิ์ต้องไม่มีรหัสผ่าน คีย์ API หรือข้อมูลส่วนบุคคลที่ละเอียดอ่อน

เมื่อใดจึงควรใช้ JWT?

กรณีการใช้งานที่พบบ่อยที่สุดคือการอนุญาต หลังจากที่ผู้ใช้เข้าสู่ระบบสำเร็จ เซิร์ฟเวอร์การอนุญาตจะออก JWT เมื่อส่วนหน้าหรือแอปเรียก API ในเวลาต่อมา โทเค็นจะถูกวางในส่วนหัวการอนุญาต HTTP เช่น การอนุญาต: ผู้ถือ

JWT ยังใช้สำหรับการแลกเปลี่ยนข้อมูลโดยทั่วไป เมื่อทั้งสองระบบจำเป็นต้องแลกเปลี่ยนข้อมูลที่ตรวจสอบได้ ลายเซ็นช่วยให้ฝ่ายรับยืนยันว่าข้อมูลไม่มีการเปลี่ยนแปลงระหว่างการส่ง ตำแหน่งข้อมูล JWKS มักใช้ในระบบขนาดใหญ่เพื่อเปิดเผยกุญแจสาธารณะ เพื่อให้บริการต่างๆ สามารถตรวจสอบแหล่งที่มาของโทเค็นได้

โครงสร้างสามส่วน JWT: ส่วนหัว, น้ำหนักบรรทุก, ลายเซ็น

JWT มาตรฐานมักจะประกอบด้วยสตริง Base64URL ที่คั่นด้วยช่วงระยะเวลาสามสตริง: Header.Payload.Signature ส่วนแรกของส่วนหัวจะอธิบายประเภทโทเค็นและอัลกอริธึมลายเซ็น ส่วนที่สองของเพย์โหลดประกอบด้วยการอ้างสิทธิ์ และส่วนที่สามของลายเซ็นจะใช้เพื่อตรวจสอบความสมบูรณ์

การเรียกร้องที่ลงทะเบียนทั่วไป ได้แก่ iss, sub, aud, exp, nbf, iat และ jti การตรวจสอบความถูกต้องของ API ที่ดีมักจะตรวจสอบอย่างน้อย exp, iss และ aud

JWT ทำงานอย่างไรในการเข้าสู่ระบบและ API

กระบวนการทั่วไปคือ: ผู้ใช้เข้าสู่ระบบ อนุญาตให้เซิร์ฟเวอร์ตรวจสอบรหัสผ่านบัญชีหรือผลการเข้าสู่ระบบของบุคคลที่สาม จากนั้นจึงออกโทเค็นการเข้าถึง ส่วนหน้าแนบโทเค็นการเข้าถึงกับคำขอ API API แบ็กเอนด์ตรวจสอบโทเค็นและส่งคืนข้อมูลที่ได้รับการป้องกัน

JWT ไม่ใช่การแทนที่เซสชันสากล เมื่อมีการออกโทเค็นแล้ว โดยปกติจะสามารถตรวจสอบได้โดยไม่ต้องตรวจสอบฐานข้อมูลก่อนหมดอายุ อย่างไรก็ตาม ยังคงจำเป็นต้องออกแบบการเพิกถอนโทเค็น การเปลี่ยนแปลงสิทธิ์ทันที และการประมวลผลการออกจากระบบ

อะไรคือความแตกต่างระหว่างการตรวจสอบ JWT และการตรวจสอบ JWT?

การตรวจสอบ JWT มักจะหมายถึงการตรวจสอบว่าโทเค็นเป็นไปตามกฎที่คาดหวังหรือไม่ เช่น มีสามส่วนหรือไม่ สามารถถอดรหัสได้หรือไม่ JSON นั้นถูกกฎหมายหรือไม่ หมดอายุแล้วหรือไม่ ผู้ออกนั้นถูกต้องหรือไม่ และผู้ชมปฏิบัติตาม API ปัจจุบันหรือไม่

การตรวจสอบ JWT จะใช้อัลกอริทึมและคีย์ที่ระบุเพื่อคำนวณลายเซ็นใหม่ จากนั้นเปรียบเทียบกับลายเซ็นที่สามของโทเค็น ความสามารถในการเข้าใจเพย์โหลดไม่ได้หมายความว่าโทเค็นนั้นน่าเชื่อถือ API อย่างเป็นทางการจะต้องผ่านการตรวจสอบตราประทับและการตรวจสอบการเรียกร้อง

อะไรคือความแตกต่างระหว่างการถอดรหัส JWT และการเข้ารหัส JWT?

JWT Decode แปลงย่อหน้าแรกและย่อหน้าที่สองของโทเค็นกลับเป็น JSON เพื่อให้คุณสามารถอ่านส่วนหัวและเพย์โหลดได้ JWT Encode เป็นกระบวนการย้อนกลับ: เตรียม Header JSON และ Payload JSON สร้าง Signature และรวมเข้าด้วยกันเป็นโทเค็นที่สมบูรณ์

หากคุณต้องการดูเนื้อหาเพย์โหลด คุณไม่จำเป็นต้องมีความลับ หากคุณต้องการยืนยันว่าระบบของคุณออกโทเค็นจริงหรือไม่ คุณต้องใช้รหัสลับหรือรหัสสาธารณะที่ถูกต้องเพื่อตรวจสอบลายเซ็น ปัจจุบันหน้านี้รองรับ HS256

การเปรียบเทียบการอ้างสิทธิ์ JWT: ฉันควรดูฟิลด์ใดหลังจากถอดรหัส

เมื่อใช้การถอดรหัส JWT ออนไลน์ คุณควรตรวจสอบว่าใครเป็นผู้ออกโทเค็น ระบบที่ออกโทเค็น มีผลเมื่อใด หมดอายุเมื่อใด และขอบเขตการอนุญาตตรงตามข้อกำหนด API หรือไม่ ตารางต่อไปนี้สรุปข้อเรียกร้อง JWT ทั่วไป

การเรียกร้องความหมายภาษาจีนสิ่งที่ต้องตรวจสอบเมื่อทำการดีบัก
issผู้ออก, ผู้ออกไม่ว่าจะเป็นเซิร์ฟเวอร์การอนุญาตของคุณหรือผู้ให้บริการข้อมูลประจำตัวที่เชื่อถือได้
ย่อยหัวเรื่อง ผู้ใช้ หรือ ID หลักไม่ว่าจะสอดคล้องกับผู้ใช้ สมาชิก บัญชีบริการ หรืออุปกรณ์ที่ถูกต้อง
ออดผู้ชม ผู้ชมโทเค็นไม่ว่าจะส่งไปยัง API ปัจจุบันหรือไม่ ข้อผิดพลาดของผู้ชมมักทำให้เกิด 401
ประสบการณ์เวลาหมดอายุ, เวลาหมดอายุไม่ว่าจะหมดอายุแล้ว; สังเกตความแตกต่างในการประทับเวลา Unix และการแสดงโซนเวลา
ไม่ทราบไม่มาก่อน เวลาที่มีผลยังไม่ถึงเวลาใช้งานหรือไม่ การเบี่ยงเบนเวลาของเซิร์ฟเวอร์ก็จะส่งผลกระทบต่อเช่นกัน
นั่นคือออก ณ เวลาที่ออกตรงกับเวลาจริงในการเข้าสู่ระบบหรือรีเฟรชโทเค็นหรือไม่
เจทีไอJWT ID, โทเค็น ID เฉพาะไม่ว่าจะใช้สำหรับรายการเพิกถอน บันทึกการตรวจสอบ หรือการป้องกันการโจมตีซ้ำ
ขอบเขตขอบเขตอำนาจหน้าที่สิทธิ์การอ่าน เขียน ผู้ดูแลระบบ และการอนุญาตอื่น ๆ ที่ API ต้องการอยู่หรือไม่

จะเลือกระหว่าง HS256, RS256 และ ES256 ได้อย่างไร?

alg ใน JWT Header จะบอกผู้ตรวจสอบว่าควรใช้อัลกอริทึมใด HS256 คือ HMAC SHA-256 และทั้งการออกและการตรวจสอบใช้ชุดความลับเดียวกัน RS256 ใช้ลายเซ็นคีย์ส่วนตัว RSA และการตรวจสอบคีย์สาธารณะ ES256 ใช้อัลกอริธึมเส้นโค้งรูปไข่

แบ็กเอนด์ควรระบุรายการอัลกอริธึมที่อนุญาตอย่างชัดเจนเพื่อป้องกันไม่ให้ผู้โจมตีส่งผลกระทบต่อกระบวนการตรวจสอบโดยการแก้ไขส่วนหัว หาก JWT มาจากผู้ให้บริการข้อมูลระบุตัวตน โดยปกติจะได้รับ JWKS หรือคีย์สาธารณะและทำเครื่องหมายที่ kid, iss, aud, exp

ข้อผิดพลาด JWT ทั่วไปและวิธีการแก้ไขปัญหา

ปัญหาที่พบบ่อยที่สุดที่พบเมื่อใช้ตัวถอดรหัส JWT คือโทเค็นไม่อยู่ในรูปแบบสามส่วนมาตรฐาน สตริง Base64URL ถูกคัดลอกไม่สมบูรณ์ มีช่องสีขาวทั้งก่อนและหลัง เพย์โหลดไม่ใช่ JSON ที่ถูกกฎหมาย หรือใช้ความลับในการเซ็นชื่ออย่างไม่ถูกต้อง หาก API ส่งคืน 401 หรือ 403 ขอแนะนำให้ถอดรหัส JWT ก่อนและยืนยัน exp, aud และ ขอบเขต

รายการตรวจสอบการดีบัก JWT
  • ไม่ว่าโทเค็นจะอยู่ในรูปแบบสามส่วน header.payload.signature หรือไม่
  • ส่วนหัวการอนุญาตใช้สคีมา ผู้ถือ หรือไม่
  • exp หมดอายุแล้วหรือไม่ และเวลาเซิร์ฟเวอร์ซิงโครไนซ์หรือไม่
  • iss และ aud สอดคล้องกับสภาพแวดล้อมปัจจุบันหรือไม่
  • ความลับ HS256 สอดคล้องกับจุดสิ้นสุดการออกอย่างสมบูรณ์หรือไม่
  • RS256 / ES256 ใช้คีย์สาธารณะที่ถูกต้องและ kid หรือไม่
  • การอ้างสิทธิ์มีขอบเขตหรือบทบาทที่ API ต้องการหรือไม่

JWT, Session และ SAML แตกต่างกันอย่างไร

โดยปกติเซสชันจะบันทึกสถานะในเซิร์ฟเวอร์หรือที่เก็บข้อมูลส่วนกลาง และเบราว์เซอร์จะบันทึกเฉพาะรหัสเซสชันเท่านั้น JWT ใส่ส่วนหนึ่งของสถานะลงในโทเค็น เพื่อให้ API สามารถใช้ลายเซ็นเพื่อตรวจสอบความสมบูรณ์ได้ SAML เป็นแบบ XML และมักใช้ใน SSO ขององค์กร

แผนเหมาะสมกับสถานการณ์สิ่งที่ควรทราบ
เจดับบลิวการอนุญาต API, โทเค็นการเข้าถึง SSO, ไมโครเซอร์วิสจำเป็นต้องควบคุมเวลาหมดอายุ การตรวจสอบซีล การเพิกถอน และการรั่วไหลของข้อมูลที่ละเอียดอ่อน
เซสชันเว็บไซต์แบบดั้งเดิมที่ต้องออกจากระบบทันทีหรือการควบคุมสถานะแบบรวมศูนย์จำเป็นต้องมีที่เก็บเซสชันฝั่งเซิร์ฟเวอร์ และการขยายข้ามบริการจำเป็นต้องมีการออกแบบเพิ่มเติม
SAMLการบูรณาการเอกลักษณ์องค์กร ระบบ SSO เดิมโครงสร้าง XML มีขนาดใหญ่กว่า และลายเซ็นและการตั้งค่ามักจะซับซ้อนกว่า

คำแนะนำด้านความปลอดภัยของ JWT: White hat SEO ควรเขียนความเสี่ยงไว้อย่างชัดเจน

  • อย่าใส่รหัสผ่าน คีย์ส่วนตัว คีย์ API ข้อมูลการชำระเงิน หรือข้อมูลส่วนบุคคลที่ละเอียดอ่อนใน JWT Header หรือ Payload
  • ตั้งค่า exp ที่สมเหตุสมผล และอย่าทำให้โทเค็นการเข้าถึงใช้งานได้เป็นเวลานาน
  • อัลกอริธึมที่อนุญาตจะต้องได้รับการแก้ไขในระหว่างการตรวจสอบแบ็คเอนด์ และอย่าเชื่อถือ alg ของส่วนหัวโดยสุ่มสี่สุ่มห้า
  • ใช้ความลับ HS256 ที่ยาวเพียงพอและสุ่ม อย่าใช้ความลับตัวอย่างในสภาพแวดล้อมการใช้งานจริง
  • ตรวจสอบ iss, aud, nbf, iat พร้อมการอ้างสิทธิ์ที่จำเป็น
  • หลีกเลี่ยงการบรรจุรายการอนุญาตที่มีขนาดใหญ่เกินไปลงใน JWT เพื่อหลีกเลี่ยงการทำให้ส่วนหัวใหญ่เกินไปหรือทำให้ข้อมูลรั่วไหล
  • โทเค็นการจัดเก็บข้อมูลส่วนหน้าจำเป็นต้องประเมิน XSS, CSRF, คุณลักษณะคุกกี้ และความเสี่ยงในการจัดเก็บเบราว์เซอร์

เครื่องมือถอดรหัส JWT ออนไลน์นี้ใช้การประมวลผลแบบเนทีฟของเบราว์เซอร์: โทเค็น, ข้อมูลลับ, Header JSON และ Payload JSON ที่คุณวางจะไม่ถูกอัพโหลดไปยังเซิร์ฟเวอร์ ToolBoy อย่างไรก็ตาม ควรปฏิบัติตามหลักการของการเปิดเผยข้อมูลขั้นต่ำเมื่อต้องจัดการกับโทเค็นการผลิตจริง

JWT มักปรากฏในกระบวนการดีบัก API ร่วมกับ JSON, Base64URL, การสืบค้น URL, การประทับเวลา, SHA-256, UUID, regex และรูปแบบข้อมูลอื่นๆ คุณสามารถใช้เครื่องมือการจัดรูปแบบ JSON, การเข้ารหัสและถอดรหัส Base64, การแปลงการประทับเวลา Unix หรือ ของ ToolBoy href="uuid-generator.html" data-i18n="auto.025">ตัวสร้าง UUID

หากต้องการอ่านเพิ่มเติม โปรดดูที่ JSON Web Token Introduction ของ jwt.io และ RFC 7519. เนื้อหาของหน้านี้ได้รับการจัดระเบียบใหม่และเขียนใหม่เป็นภาษาจีน โดยเน้นที่การแก้ไขจุดบกพร่องเชิงปฏิบัติ SEO หมวกขาว และความเป็นส่วนตัวดั้งเดิม

คำถามที่พบบ่อยเกี่ยวกับการถอดรหัส JWT ออนไลน์

การถอดรหัส JWT ออนไลน์จะตรวจสอบลายเซ็นหรือไม่
การถอดรหัสส่วนหัวและเพย์โหลดไม่เทียบเท่ากับการตรวจสอบลายเซ็น เพื่อยืนยันว่าโทเค็นถูกดัดแปลงหรือไม่ โปรดป้อนรหัสลับเดียวกันและดำเนินการยืนยัน
JWT Payload สามารถมีรหัสผ่านหรือกุญแจได้หรือไม่?
ไม่แนะนำ. โดยทั่วไป JWT จะเข้ารหัส Base64URL เท่านั้น และใครก็ตามที่ได้รับโทเค็นสามารถอ่านเพย์โหลดได้
ตัวเข้ารหัส JWT เหมาะสำหรับการออกโทเค็นอย่างเป็นทางการหรือไม่
เครื่องมือนี้เหมาะสำหรับการพัฒนา การทดสอบ และการดีบัก สภาพแวดล้อมที่เป็นทางการควรมีโทเค็นปัญหาบริการแบ็กเอนด์และจัดการข้อมูลลับหรือคีย์ส่วนตัวอย่างเหมาะสม