Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

پرش به محتوای اصلی
Gizke.com
وبلاگ

رمزگشای JWT

روی دستگاه شما اجرا می‌شود. چیزی ارسال نمی‌شود.

توکن‌های JSON Web Token را کاملاً در مرورگر خود رمزگشایی و بررسی کنید - هدر، payload، زمان انقضا و بررسی امضای اختیاری، هیچ‌چیز در هیچ‌جا آپلود نمی‌شود.

JSON Web Token (JWT) روشی فشرده و امن برای URL جهت نمایش ادعاها بین دو طرف است - در همه‌جا استفاده می‌شود، از هدرهای "Authorization: Bearer ..." گرفته تا کوکی‌های نشست و ورود یکپارچه (SSO). یک JWT فقط سه بخش رمزگذاری‌شده با base64url (هدر، payload، امضا) است که با نقطه به هم متصل شده‌اند، بنابراین هرکسی می‌تواند بدون نیاز به کلید امضا، هدر و payload را رمزگشایی و بخواند - فقط تأیید امضا به یک رمز مشترک یا کلید خصوصی نیاز دارد. این ابزار هر دو بخش را به‌صورت محلی در مرورگر شما رمزگشایی می‌کند، ادعاهای استاندارد را توضیح می‌دهد، توکن منقضی یا هنوز معتبر نشده را علامت‌گذاری می‌کند و درباره تله امنیتی الگوریتم "none" هشدار می‌دهد - توکن شما هرگز به هیچ‌کجا فرستاده نمی‌شود.

پرسش‌های متداول

آیا JWT من به سروری فرستاده می‌شود؟
خیر. رمزگشایی کاملاً در مرورگر شما و با استفاده از APIهای وب atob و TextDecoder انجام می‌شود - توکن، و هر رمز مشترک یا کلید عمومی که برای تأیید امضا جای‌گذاری می‌کنید، هرگز از دستگاه شما خارج نمی‌شود.
آیا این ابزار می‌تواند امضا را تأیید کند؟
بله، به‌عنوان یک قابلیت اضافه با تلاش بهترین حالت. اگر رمز مشترک HMAC را بدانید (برای HS256/384/512) یا کلید عمومی رمزگذاری‌شده با PEM را جای‌گذاری کنید (برای RS256/384/512 یا ES256/384/512)، ابزار امضا را به‌صورت محلی با Web Crypto API مرورگر بررسی می‌کند. بدون کلید، فقط هدر و payload رمزگشایی و نمایش داده می‌شوند - رمزگشایی هرگز به کلید امضا نیاز ندارد.
چرا الگوریتم "none" نشان داده می‌شود؟
"alg": "none" یعنی توکن اصلاً امضا نشده است - هر کسی می‌توانست هر ادعایی را در آن بنویسد. برخی کتابخانه‌ها در گذشته چنین توکن‌های امضانشده‌ای را به‌اشتباه معتبر می‌پذیرفتند که به روشی شناخته‌شده برای دور زدن احراز هویت تبدیل شد. این ابزار همیشه این مورد را به‌طور برجسته نشان می‌دهد تا آن را از دست ندهید.
exp، iat و nbf به چه معنا هستند؟
این‌ها ادعاهای زمانی استاندارد از RFC 7519 هستند: iat نشان می‌دهد توکن چه زمانی صادر شده، nbf زودترین لحظه‌ای است که معتبر می‌شود و exp لحظه‌ای است که دیگر معتبر نیست. هر سه به‌صورت NumericDate - ثانیه از epoch یونیکس - ذخیره می‌شوند که این ابزار آن را به تاریخی خوانا و زمانی نسبی مانند «۲ ساعت دیگر منقضی می‌شود» تبدیل می‌کند.
چرا می‌توانم payload را بدون رمز مشترک بخوانم؟
زیرا هدر و payload یک JWT فقط با base64url رمزگذاری شده‌اند، نه رمزنگاری - رمزگذاری به معنای محرمانه بودن نیست. هر کسی که توکن را داشته باشد از قبل می‌تواند ادعاها را بخواند؛ امضا فقط ثابت می‌کند که آن‌ها توسط شخصی بدون کلید دستکاری نشده‌اند. هرگز چیزی را که نمی‌خواهید مهاجم مستقیماً بخواند، داخل payload یک JWT قرار ندهید.
توکن من ۳ بخش دارد اما هنوز رمزگشایی نمی‌شود - چرا؟
هر یک از سه بخش (هدر، payload، امضا) باید متن base64url معتبری باشد و هدر و payload باید به JSON معتبر رمزگشایی شوند. این ابزار هدر و payload را به‌طور مستقل رمزگشایی می‌کند و دقیقاً می‌گوید کدام‌یک خراب است و چرا (base64 نادرست، UTF-8 نادرست یا JSON نامعتبر)، به‌جای شکست خوردن بی‌سروصدا.
برای توسعه‌دهندگان: این صفحه را با یک پارامتر `token` در آدرس باز کنید - مثلاً gizke.com/jwt?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c - و آن توکن به‌طور خودکار از پیش پر می‌شود. اکثر بازدیدکنندگان به این نیازی ندارند؛ این ویژگی برای پیوند مستقیم به یک نمونه آماده است.

این ابزار را به اشتراک بگذارید

وبلاگدرباره ماتماسشرایط استفادهسیاست حفظ حریم خصوصی