رمزگشای JWT
هر JSON Web Token را در مرورگر رمزگشایی کنید: هدر و پیلود را ببینید، exp، iat و nbf را به تاریخ واقعی در منطقه زمانی خودتان تبدیل کنید و بفهمید توکن منقضی شده یا نه.
خلاصه
هدر
پیلود (ادعاها)
توکن و امضا
هر JWT را بدون ارسال به جایی بخوانید
یک JSON Web Token را جایگذاری کنید تا رمزگشا آن را به سه بخش تقسیم کند: هدر (با چه الگوریتمی امضا شده)، پیلود (ادعاها: کاربر کیست، به چه چیزهایی دسترسی دارد و توکن کی منقضی میشود) و امضا. JSON مرتب نمایش داده میشود تا با یک نگاه خوانده شود.
ادعاهای زمانی به تاریخ واقعی تبدیل میشوند. exp، iat و nbf در منطقه زمانی شما، به وقت UTC و به شکل «۲۰ دقیقه دیگر» یا «۳ روز پیش» نمایش داده میشوند و وضعیت فوراً نشان میدهد توکن هنوز معتبر است، منقضی شده یا هنوز معتبر نشده.
توکنها اغلب به حسابهای واقعی دسترسی میدهند، به همین دلیل تمام رمزگشایی در مرورگر شما انجام میشود. توکن هرگز در سرورهای ما بارگذاری، ثبت یا ذخیره نمیشود. این کار امنتر از جایگذاری آن در یک چتبات یا سایتی است که آن را به سرور میفرستد.
چگونه JWT را رمزگشایی کنیم
- توکن را از برنامه، هدر
Authorization، کوکی یا ابزارهای توسعهدهنده مرورگر کپی کنید. - آن را در کادر جایگذاری کنید. پیشوند
Bearer، علامتهای نقلقول، فاصلهها و شکست خطها خودکار حذف میشوند. - خلاصه را بخوانید: وضعیت، الگوریتم، صادرکننده، موضوع، مخاطب و زمان دقیق صدور و انقضا.
- با دکمههای کپی، JSON مرتبشده هدر یا پیلود را به گزارش باگ یا یادداشتهایتان منتقل کنید.
معنای ادعاهای رایج
exp(زمان انقضا): پس از این زمان توکن باید رد شود.iat(زمان صدور): زمانی که توکن ساخته شده است.nbf(نه پیش از): توکن نباید پیش از این زمان پذیرفته شود.iss(صادرکننده): سازنده توکن، که اغلب آدرس URL سرور ورود شماست.sub(موضوع): توکن درباره چه کسی است، معمولاً شناسه کاربر.aud(مخاطب): برنامه یا API که توکن برای آن در نظر گرفته شده است.algوkid(در هدر): الگوریتم امضا مانند HS256 یا RS256 و شناسه کلیدی که آن را امضا کرده است.
تاریخهای JWT مقادیر NumericDate هستند: تعداد ثانیهها از ۱ ژانویه ۱۹۷۰ به وقت UTC. رمزگشا آنها را برایتان تبدیل میکند، پس به مبدل جداگانه برچسب زمانی نیازی ندارید.
نکتههای اشکالزدایی
- اگر API بلافاصله پس از ورود خطای 401 برمیگرداند، اول
expوnbfرا بررسی کنید. ساعت سروری که چند دقیقه جلو یا عقب است دلیلی رایج است و بیشتر کتابخانهها کمی رواداری را مجاز میدانند. - تاریخی که دهها هزار سال در آینده است یعنی مقدار به جای ثانیه بر حسب میلیثانیه نوشته شده. رمزگشا در این حالت به شما هشدار میدهد.
audوissرا با مقداری که API شما انتظار دارد مقایسه کنید. توکنی که برای برنامه یا محیط دیگری (staging به جای محیط عملیاتی) صادر شده، دلیل رایج خطاهای «توکن نامعتبر» است.- اگر مقدار
algدر هدرnoneباشد، توکن امضا نشده است. هرگز چنین توکنهایی را در محیط عملیاتی نپذیرید.
محدودیتها و نکات مهم
- رمزگشایی به معنای تأیید نیست. هر کسی میتواند توکنی با هر ادعایی بسازد؛ فقط بررسی امضا با کلید درست روی سرور شما ثابت میکند که واقعی است. این ابزار امضاها را تأیید نمیکند.
- پیلود یک JWT معمولی فقط کدگذاری شده، نه رمزنگاری. هر کسی که توکن را دارد میتواند آن را بخواند، پس هرگز رمز عبور یا اطلاعات محرمانه را در ادعاها قرار ندهید.
- توکنهای رمزنگاریشده (JWE، پنج بخش) بدون کلید خواندنی نیستند، بنابراین فقط هدر آنها نمایش داده میشود.
- اعداد دقیقاً همانطور که در توکن آمدهاند نمایش داده میشوند، پس شناسههای عددی بلند هرگز گرد نمیشوند.
پرسشهای متداول
آیا جایگذاری یک توکن واقعی در اینجا امن است؟
بله. رمزگشایی با JavaScript در مرورگر شما انجام میشود و توکن هرگز به سرورهای ما ارسال نمیشود. با این حال با توکنهای فعال مثل رمز عبور رفتار کنید: آنها را در اسکرینشات یا چت به اشتراک نگذارید و بگذارید منقضی شوند.
آیا این ابزار میگوید توکن معتبر است یا نه؟
بر اساس تاریخها میگوید توکن منقضی شده یا هنوز معتبر نشده. اما نمیتواند بگوید امضا واقعی است یا نه، چون برای آن به کلید مخفی یا عمومی نیاز است که فقط سرور شما باید داشته باشد.
چرا توکنی که همین الان گرفتهام منقضی نشان داده میشود؟
ساعت سروری را که توکن را صادر کرده بررسی کنید و مطمئن شوید exp بر حسب ثانیه است نه میلیثانیه. اگر iat هم چند ساعت عقب است، احتمالاً ساعت سرور اشتباه است.
تفاوت رمزگشای JWT با رمزگشای Base64 چیست؟
JWT سه بخش کدگذاریشده با Base64URL است که با نقطه به هم وصل شدهاند. رمزگشای Base64 هر بار یک بخش را میخواند، اما رمزگشای JWT توکن را خودش تقسیم میکند، نویسههای امن برای URL و پدینگ جاافتاده را مدیریت میکند و تاریخها را به زمان خوانا تبدیل میکند.
آیا بدون اینترنت هم کار میکند؟
بله. پس از بارگذاری صفحه میتوانید اینترنت را قطع کنید و همچنان توکنها را رمزگشایی کنید.
ابزارهای مرتبط
- دیکد Base64: Base64 را فوراً به متن خوانا برگردانید، با پشتیبانی فارسی و نمادها. هدر احراز هویت، بخشهای JWT و payload API را ببینید. رایگان.
- اعتبارسنجی و فرمت JSON: درستی JSON را بررسی کنید، خطاها را ببینید و JSON فشرده را به کد مرتب و خوانا تبدیل کنید. JSON Formatter رایگان در مرورگر.
- دیکد URL: لینکهای انکودشده مثل %D8%B3%D9%84%D8%A7%D9%85 را فوراً به متن فارسی خوانا برگردانید. URL Decoder رایگان در مرورگر، بدون ثبتنام.
- انکود Base64: هر متنی را فوراً به Base64 تبدیل کنید، با پشتیبانی کامل فارسی در UTF-8. برای Data URI، هدر احراز هویت و API. رایگان، بدون ثبتنام.
ابزارهای مشابه
Base64 را فوراً به متن خوانا برگردانید، با پشتیبانی فارسی و نمادها. هدر احراز هویت، بخشهای JWT و payload API را ببینید. رایگان.
درستی JSON را بررسی کنید، خطاها را ببینید و JSON فشرده را به کد مرتب و خوانا تبدیل کنید. JSON Formatter رایگان در مرورگر.
لینکهای انکودشده مثل %D8%B3%D9%84%D8%A7%D9%85 را فوراً به متن فارسی خوانا برگردانید. URL Decoder رایگان در مرورگر، بدون ثبتنام.
ابزارهای رایگان محبوب
با یک کلیک رمز عبور قوی و تصادفی بسازید: طول، حروف بزرگ و کوچک، عدد و نماد را انتخاب کنید. رایگان، بدون ثبتنام، در مرورگر.
متن انگلیسی را با یک کلیک به حروف بزرگ، کوچک، Title Case، camelCase یا snake_case تبدیل کنید. رایگان برای برنامهنویس و نویسنده.
همهٔ آدرسهای ایمیل را در یک ثانیه از هر متن یا کد HTML بیرون بکشید و تعدادشان را ببینید. ابزار رایگان بدون ثبتنام.
رکوردهای DNS هر دامنه را ببینید: A، AAAA، CNAME، MX، NS، TXT و SOA. تنظیمات ایمیل، SPF، تأیید دامنه و نیمسرورها را رایگان بررسی کنید.
در یک ثانیه خطوط را به فاصله، نقطهویرگول را به | یا نقطه را به خطتیره تبدیل کنید. ابزار رایگان مرتب کردن فهرستها بدون ثبتنام.
لینک wa.me بسازید که بدون ذخیرهٔ شماره، گفتگوی واتساپ با پیام آماده باز میکند؛ برای فروشگاه، بیو و تبلیغ. رایگان.