tigtools

מפענח JWT

הדבק JWT כדי לקרוא את הכותרת והתביעות שלו ולראות מתי הוא פג. הפענוח מתבצע בדפדפן שלך ואינו מאמת את החתימה.

פועל בדפדפן שלך ללא הרשמה

פענוח אינו אימות: כל אחד יכול ליצור אסימון עם כל תוכן. הכלי הזה אינו בודק את החתימה. הוא פועל רק בדפדפן שלכם, אך בכל זאת מומלץ להימנע מהדבקת אסימוני ייצור פעילים באתר כלשהו.

איך להשתמש בו

  1. העתק אסימון מכותרת Authorization, מעוגייה או מכלי הפיתוח של הדפדפן שלך. קידומת "Bearer " מוסרת אוטומטית.
  2. הדבק אותו בתיבה. הכותרת והמטען מוצגים כ-JSON מעוצב.
  3. בדוק את שורת הסטטוס ואת טבלת התביעות עבור המנפיק, הקהל ותאריכי התפוגה בזמן המקומי שלך.
  4. העתק את JSON של הכותרת או המטען אם אתה זקוק לו במקום אחר.

איך זה עובד

JSON Web Token (JWT, RFC 7519) בצורתו החתומה הנפוצה (JWS) מורכב משלושה חלקים המקודדים ב-base64url ומופרדים בנקודות. הכותרת (header) מציינת איזה אלגוריתם חתם על האסימון, למשל HS256 (HMAC עם SHA-256) או RS256 (RSA). המטען (payload) מכיל את ה-claims: הצהרות על המשתמש ועל האסימון עצמו. החתימה מאפשרת לשרת לוודא שהכותרת והמטען לא שונו.

הכותרת והמטען מקודדים בלבד, לא מוצפנים. כל מי שברשותו אסימון יכול לקרוא את תוכנו, וזה בדיוק מה שהכלי הזה עושה. אל תכניסו סודות למטען של JWT.

פענוח אינו מוכיח דבר על אסימון. בלי המפתח של המנפיק, איש אינו יכול לדעת אם החתימה אמיתית, ולכן אסור להשתמש בתוצאה כאן כדי להחליט אם לבטוח באסימון. האימות צריך להתבצע בשרת שלכם, עם ספריית JWT מתוחזקת הבודקת את החתימה, האלגוריתם, exp, nbf, iss ו-aud.

ה-claims הרשומים מוסברים בטבלה. exp, nbf ו-iat הם ערכי NumericDate: שניות מאז 1 בינואר 1970 UTC. הכלי ממיר אותם לתאריכים באזור הזמן שלכם ומשווה אותם לשעון המכשיר שלכם, בלי מרווח הסובלנות הקטן ששרתים נוהגים לאפשר להפרשי שעון. אם השעון שלכם שגוי, גם המצב שיוצג יהיה שגוי.

אסימונים בני חמישה חלקים הם JWT מוצפנים (JWE). לא ניתן לפענח את המטען שלהם בלי המפתח, ולכן הכלי מדווח רק על הפורמט.

דוגמאות

מדוע ה-API שלי מחזיר 401?

פענחו את אסימון הגישה שהאפליקציה שלכם שולחת. אם שורת המצב אומרת "פג תוקף בתאריך …", הלקוח צריך לרענן את האסימון. אם aud מציג https://api.example.com אבל אתם קוראים ל-https://api2.example.com, הקהל (audience) אינו תואם.

בדיקת אסימון ID של OpenID Connect

אסימון ID מספק התחברות מכיל iss (הספק), sub (מזהה המשתמש הקבוע), aud (מזהה הלקוח שלך), iat ו-exp, ועוד תביעות פרופיל כמו אימייל ושם. פענוח שלו מראה אילו תביעות האפליקציה שלך מקבלת בפועל.

קריאת תביעת חותמת זמן

מטען מכיל "exp": 1735689600. טבלת התביעות מציגה אותו כ-1 בינואר 2025, 00:00:00 UTC, מומר לזמן המקומי שלך, יחד עם כמה זמן עבר או כמה זמן נותר עד אז.

שאלות נפוצות

האם הכלי הזה מאמת את החתימה של ה-JWT?

לא. הוא רק מפענח את הכותרת והמטען. אימות דורש את הסוד (עבור HS256) או את המפתח הציבורי של המנפיק (עבור RS256 ו-ES256) ויש לבצע אותו בשרת שלך עם ספרייה מהימנה.

האם בטוח להדביק כאן את האסימון שלי?

האסימון מפוענח בדפדפן שלך ואינו נשלח לשום מקום. למרות זאת, אסימון תקף מתפקד כמו סיסמה עד שתוקפו פג, לכן עדיף להשתמש באסימונים שפג תוקפם או באסימוני בדיקה, ולעולם אל תדביק אסימוני ייצור בכלים שאינך סומך עליהם.

מדוע כל אחד יכול לקרוא את המטען?

JWT חתומים מקודדים ב-base64url, שאינו הצפנה. החתימה מגנה על האסימון מפני שינויים, לא מפני קריאה. אם התוכן חייב להיות סודי, השתמש ב-JWT מוצפן (JWE) או שמור את הנתונים בשרת.

מה המשמעות של "exp", ובאיזו יחידה הוא נמדד?

exp הוא זמן התפוגה כ-NumericDate: שניות שלמות (לא מילישניות) מאז 1970-01-01 00:00:00 UTC. יש לדחות אסימון ברגע זה או אחריו.

מדוע אני מקבל "base64url לא תקין"?

האסימון כנראה נקטע או שונה בזמן ההעתקה, למשל על ידי אובדן התווים האחרונים שלו, מירכאות סביבו או קידוד URL (%2E במקום נקודה). הדבק את האסימון הגולמי בדיוק כפי שהונפק.

פרטיות

האסימון מפוענח באמצעות JavaScript בדפדפן שלך. הוא אינו נשלח לשום שרת, אינו נשמר ואינו נכלל בניתוח נתונים. לא מתבצעת אימות חתימה או בדיקת מפתח, כך שלא נשלחת שום בקשת רשת.