מפענח JWT

פענחו כל JSON Web Token בדפדפן: צפו בכותרת ובמטען, הציגו את exp,‏ iat ו־nbf כתאריכים אמיתיים באזור הזמן שלכם, ובדקו אם הטוקן פג תוקף.

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

סיכום

כותרת (Header)


                    

מטען (Claims)


                    

טוקן וחתימה

קראו כל JWT בלי לשלוח אותו לשום מקום

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

שדות הזמן הופכים לתאריכים אמיתיים. exp,‏ iat ו־nbf מוצגים באזור הזמן שלכם, ב־UTC ובצורה כמו “בעוד 20 דקות” או “לפני 3 ימים”, ושדה המצב מראה מיד אם הטוקן עדיין בתוקף, פג תוקף או עדיין לא נכנס לתוקף.

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

איך מפענחים JWT

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

מה המשמעות של השדות הנפוצים

  • exp (זמן תפוגה): אחרי הזמן הזה יש לדחות את הטוקן.
  • iat (זמן הנפקה): מתי הטוקן נוצר.
  • nbf (לא לפני): אסור לקבל את הטוקן לפני הזמן הזה.
  • iss (מנפיק): מי יצר את הטוקן, לרוב כתובת ה־URL של שרת ההתחברות.
  • sub (נושא): במי הטוקן עוסק, בדרך כלל מזהה משתמש.
  • aud (קהל יעד): האפליקציה או ה־API שהטוקן מיועד להם.
  • alg ו־kid (בכותרת): אלגוריתם החתימה, כמו HS256 או RS256, ומזהה המפתח שחתם.

תאריכים ב־JWT הם ערכי NumericDate: מספר השניות מאז 1 בינואר 1970 ב־UTC. המפענח ממיר אותם בשבילכם, כך שאין צורך בממיר חותמות זמן נפרד.

טיפים לניפוי באגים

  • אם ה־API מחזיר 401 מיד אחרי ההתחברות, בדקו קודם את exp ו־nbf. שעון שרת שמקדים או מאחר בכמה דקות הוא סיבה נפוצה; רוב הספריות מאפשרות מרווח קטן.
  • תאריך שנמצא עשרות אלפי שנים בעתיד אומר שהערך נכתב באלפיות שנייה במקום בשניות. המפענח מזהיר אתכם כשזה קורה.
  • השוו את aud ו־iss למה שה־API שלכם מצפה לו. טוקן שהונפק לאפליקציה או לסביבה אחרת (staging במקום ייצור) הוא סיבה נפוצה לשגיאות “טוקן לא תקין”.
  • כותרת שבה alg הוא none פירושה שהטוקן לא חתום. לעולם אל תקבלו טוקנים כאלה בסביבת ייצור.

מגבלות ודברים שכדאי לדעת

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

שאלות נפוצות

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

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

האם הכלי יכול להגיד לי אם הטוקן תקף?

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

למה טוקן שקיבלתי הרגע מופיע כפג תוקף?

בדקו את השעון של השרת שהנפיק את הטוקן וודאו ש־exp בשניות ולא באלפיות שנייה. אם גם iat מלפני כמה שעות, כנראה ששעון השרת לא מכוון.

מה ההבדל בין מפענח JWT למפענח Base64?

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

האם זה עובד גם בלי אינטרנט?

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

כלים קשורים

  • מפענח Base64: פענחו Base64 לטקסט קריא מיד, עם תמיכה בעברית ובסימנים. בדקו כותרות auth, חלקי JWT ו-payload של API. בחינם.
  • בודק ומעצב JSON: בדקו אם JSON תקין, ראו שגיאות והפכו JSON של שורה אחת לקוד מסודר וקריא. JSON Formatter בחינם, בלי הרשמה.
  • מפענח URL: פענחו מיד קישורים מקודדים כמו %D7%A9%D7%9C%D7%95%D7%9D לטקסט עברי קריא. מפענח URL בחינם, בדפדפן, בלי הרשמה.
  • מקודד Base64: המירו כל טקסט ל-Base64 מיד, עם תמיכה מלאה בעברית ב-UTF-8. ל-Data URI, כותרות auth ו-API. בחינם, בלי הרשמה.

כלים דומים

מפענח Base64

פענחו Base64 לטקסט קריא מיד, עם תמיכה בעברית ובסימנים. בדקו כותרות auth, חלקי JWT ו-payload של API. בחינם.

בודק ומעצב JSON

בדקו אם JSON תקין, ראו שגיאות והפכו JSON של שורה אחת לקוד מסודר וקריא. JSON Formatter בחינם, בלי הרשמה.

מפענח URL

פענחו מיד קישורים מקודדים כמו %D7%A9%D7%9C%D7%95%D7%9D לטקסט עברי קריא. מפענח URL בחינם, בדפדפן, בלי הרשמה.

כלים חינמיים פופולריים