ข้ามไปยังเนื้อหา
ToolMug

ใช้ ↑ ↓ เพื่อเลื่อน, Enter เพื่อเปิด, Esc เพื่อปิด

ถอดรหัส JWT

วาง JSON Web Token เพื่อดู Header และ Payload ตรวจสอบว่าหมดอายุหรือไม่ และยืนยันลายเซ็นด้วย Secret หรือ Public Key ทุกอย่างทำงานในเบราว์เซอร์ของคุณ โทเค็นจากระบบ Production จะไม่ถูกส่งไปยังเซิร์ฟเวอร์

ทำงานในเบราว์เซอร์ของคุณ ข้อมูลที่คุณป้อนจะไม่ถูกอัปโหลด

การถอดรหัสไม่ได้ตรวจสอบลายเซ็น ใครก็สามารถสร้างโทเค็นที่มี claim ใดก็ได้

วิธีใช้งาน

  1. วาง Token — มี หรือไม่มี คำนำหน้า «Bearer » ก็ได้ ส่วนทั้งสามจะแสดงด้วยสีต่างกัน
  2. อ่าน Header และ Payload ที่ถอดรหัสแล้ว Claim ของ iat, nbf และ exp จะแสดงเป็นวันที่พร้อมเวลาสัมพัทธ์
  3. ในการยืนยันลายเซ็น ป้อน Shared Secret สำหรับ HS256/384/512 หรือวาง Public Key (รูปแบบ PEM หรือ JWK) สำหรับ Token ของ RS, PS, ES และ EdDSA
  4. คัดลอก JSON ที่ถอดรหัสแล้วหากต้องการใช้ที่อื่น

คำอธิบายตัวเลือก

Header
ข้อมูลเกี่ยวกับ Token โดยปกติจะมี alg (อัลกอริทึมลงนาม) และ typ ช่อง kid บอกให้ทราบว่า Key ใดลงนาม
Payload
Claim ที่ลงทะเบียน ได้แก่ sub (subject) iss (issuer) aud (audience) iat (issued at) nbf (not before) และ exp (expiry) เวลาทั้งหมดเป็น Unix seconds
Signature
พิสูจน์ว่า Header และ Payload ไม่ถูกแก้ไข การยืนยันต้อง Secret (HMAC) หรือ Public Key ของผู้ออก (RSA, ECDSA, EdDSA)
Secret is Base64
บริการบางรายเก็บ HMAC Secret เป็น Base64 Encoded ทำเครื่องหมายหากคุณมี Secret ในรูปแบบที่เข้ารหัส

Claim ทั่วไป

Claim ความหมาย ตัวอย่าง
sub หัวข้อที่ Token เกี่ยวกับ (รหัสผู้ใช้) "1234567890"
iss ใครเป็นผู้ออก "https://accounts.example.com"
aud ใครที่ Token นี้มีไว้สำหรับ "my-api"
exp เวลาหมดอายุ Unix seconds 1790427600
iat ออกเมื่อ Unix seconds 1790424000
nbf ใช้ได้ตั้งแต่ Unix seconds 1790424000
jti รหัส Token ที่ไม่ซ้ำกัน ใช้เพื่อป้องกันการเล่นซ้ำ "a1b2c3"

ตัวอย่าง

Token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c ถูกถอดรหัสเป็น Header {"alg":"HS256","typ":"JWT"} และ Payload ที่มี sub, name และ iat (18 มกราคม 2561) ด้วย Secret your-256-bit-secret ลายเซ็นจึงตรวจสอบได้

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

ปลอดภัยไหมที่จะวาง JWT จากระบบ Production ที่นี่?

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

การถอดรหัส JWT พิสูจน์ได้ว่าแท้จริงหรือไม่?

ไม่ได้ Header และ Payload เป็นเพียง Base64URL Encoding เท่านั้น ใครก็ตามสามารถอ่านหรือปลอมแปลงได้ เฉพาะการยืนยันลายเซ็นที่สำเร็จด้วย Key ที่ถูกต้องเท่านั้นที่พิสูจน์ว่า Token ออกจากฝ่ายที่คาดหวัง

ทำไมการยืนยันจึงล้มเหลวแม้ว่า Secret ถูกต้อง?

ตรวจสอบว่า Secret เป็น Base64 Encoded หรือไม่ มี Space หรือ Newline ท้ายหรือไม่ และ Algorithm ใน Header ตรงกับที่ผู้ออกใช้หรือไม่ การเปลี่ยนแปลง Token แม้แต่ตัวเดียวก็ทำลายลายเซ็น

«alg none» หมายความว่าอะไร?

Token อ้างว่าไม่ลงนาม เซิร์ฟเวอร์ต้องปฏิเสธ Token เหล่านี้ เว้นแต่พวกเขาคาดหวังอย่างชัดเจน การยอมรับพวกมันทำให้เกิดการข้ามผ่าน Authentication ที่แท้จริง

ฉันจะได้ Public Key สำหรับ RS256 Token ได้อย่างไร?

ผู้ให้บริการ Identity จะเผยแพร่ Key ของพวกเขาเป็น JWKS โดยปกติที่ /.well-known/jwks.json ค้นหา Key ที่มี kid ตรงกับ Token Header และวางเป็น JWK

ความเป็นส่วนตัว

เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา

เครื่องมือที่เกี่ยวข้อง