ממיר חינם

JWT Token מפענח

פענח את הכותרת והמטען של JWT (JSON Web Token) באופן מיידי בדפדפן שלך. חינם, פרטי וצד הלקוח - אין נתונים שנשלחים לשום שרת.

אודות כלי זה

JSON Web Tokens (JWT) הם פורמט קומפקטי, בטוח בכתובות אתרים להעברת תביעות בין שני צדדים, המוגדר על ידי RFC 7519. JWT הוא שלושה מקטעים מקודדים ב-base64url המופרדים על ידי נקודות: כותרת (אלגוריתם וסוג אסימון), מטען (תביעות) וחתימה (הוכחה קריפטוגרפית לאותנטיות). הכותרת והמטען הם JSON, מקודדים base64url לבטיחות כתובת URL; החתימה משתמשת באחד מכמה אלגוריתמים (HS256, RS256, ES256 ואחרים) על גבי הכותרת והמטען המקודד.

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

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

למה לפענח JWTs

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

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

כיצד להשתמש

הדבק את האסימון, קבל את התוכן המנתח.

  1. הדבק את ה-JWT שלך: זרוק את האסימון המלא (header.payload.signature) לאזור הקלט. המפענח מקבל אסימונים עם או בלי הקידומת Bearer האופציונלית.
  2. בדוק את הכותרת: הכותרת מציגה את אלגוריתם החתימה (alg) וסוג האסימון (typ). האלגוריתמים הנפוצים הם HS256, RS256 ו-ES256. שימו לב ל-alg: none, שמסמן אסימון לא חתום ולעיתים נדירות בטוח בייצור.
  3. בדוק את המטען: המטען מכיל את התביעות: Iss (מנפיק), תת (נושא), aud (קהל), exp (תפוגה), iat (הונפק ב-) וכל תביעה ספציפית לאפליקציה. חותמות זמן סטנדרטיות הן שניות עידן יוניקס.
  4. אמת בנפרד: המפענח אינו מאמת את החתימה. כדי לבדוק את האותנטיות, הפעל את האסימון דרך ספריית JWT עם המפתח הסודי או הציבורי המתאים בקוד היישום שלך.

מקרי שימוש נפוצים

פרטים טכניים

פורמט JWT הוא שלושה מקטעים שמצטרפים אליהם נקודות. כל פלח מקודד ב-base64url - הגרסה בטוחה בכתובת האתר של base64 שמשתמשת ב- ו-_ במקום ב-+ ו-/, כאשר ריפוד מושמט לפעמים. פענוח מחייב ביטול ההחלפות בטוחות בכתובת האתרים, ריפוד הקטע ופענוח base64.

הכותרת והמטען הם JSON לאחר פענוח. קטע החתימה הוא בינארי (בתים של חתימה גולמית) ואינו קריא לאדם; זה דורש את מפתח האימות כדי להיות שימושי.

תביעות נפוצות המוגדרות ב-RFC 7519: iss (מנפיק), משנה (מזהה נושא), aud (קהל), exp (תפוגה כשניות של יוניקס), nbf (חותמת זמן לא לפני), iat (חותמת זמן שהונפקה), jti (מזהה אסימון ייחודי). תביעות ספציפיות לאפליקציה יכולות להופיע בכל שם.

שיטות עבודה מומלצות

שאלות נפוצות

האם זה בטוח להדביק את ה-JWT שלי כאן?
כן. הפענוח מתרחש כולו בדפדפן שלך - האסימון לעולם לא נשלח לשום שרת. עם זאת, JWTs הם אישורים - אל תשתף אותם בפומבי (בצילומי מסך, פוסטים של Stack Overflow וכו') מכיוון שהם עשויים להעניק גישה לחשבונות שלך.
האם הכלי הזה מאמת את חתימת JWT?
כלי זה מפענח ומציג את תוכן האסימון. אימות חתימה דורש את המפתח הסודי (HMAC) או המפתח הציבורי (RSA/ECDSA), שאמור להישאר בשרת שלך. הכלי מציג את האלגוריתם בו נעשה שימוש אך אינו יכול לאמת ללא המפתח.
מה המשמעות של הטענות הסטנדרטיות של JWT?
iss = מנפיק, תת = נושא (מזהה משתמש), exp = זמן תפוגה (חותמת זמן Unix), iat = מונפק ב, nbf = לא לפני, aud = קהל, jti = מזהה JWT. תביעות מותאמות אישית יכולות להכיל כל מידע ספציפי לאפליקציה.
למה כל אחד יכול לפענח JWT?
JWTs מקודדים, לא מוצפנים. המטען מקודד Base64URL (לא מוצפן), כך שכל אחד יכול לקרוא אותו. החתימה מונעת שיבוש, לא קריאה. לעולם אל תשמור נתונים רגישים (סיסמאות, SSNs) במטעני JWT.
מדוע חסרה חתימה בכמה אסימונים?
אסימונים עם alg: לאף אחד אין חתימה. הם JWT תקפים לפי מפרט אך אינם מספקים הבטחות אותנטיות ואין לקבל אותם בייצור.
האם JWTs מוצפנים?
מטענים סטנדרטיים של JWT חתומים אך אינם מוצפנים. JWE (JSON Web Encryption, RFC 7516) הוא פורמט נפרד לאסימונים מוצפנים. רוב ה-JWTs בטבע הם JWS (חתומים בלבד).
האם האסימון שלי מועלה לשרת?
לא. פענוח מתרחש בדפדפן שלך; האסימון לא עוזב את המכשיר שלך.
כמה זמן הם בדרך כלל JWTs?
בין כמה מאות לכמה אלפי תווים. האורך תלוי במספר ובגודל התביעות בתוספת אורך החתימה (התלוי באלגוריתם).