مفكّك ترميز JWT

تعمل في المتصفح الأمان

الصق رمز JSON Web Token لعرض ترويسته وحمولته ومقطع التوقيع بعد فكّ ترميزها. تُشرح المطالبات المسجّلة (iss وsub وaud وexp وnbf وiat وjti)، وتُحوَّل الطوابع الزمنية إلى تواريخ مقروءة، وتُعرض حالة انتهاء الصلاحية. لا تغادر الرموز متصفحك أبداً.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هو JWT؟

رمز JWT سلسلة مضغوطة من ثلاثة أجزاء بترميز Base64url — header.payload.signature — تحمل مطالبات عن مستخدم أو عميل (الموضوع والأدوار والانتهاء) مع توقيع يمكن للمستقبِل التحقق منه. عُرّف في RFC 7519 مع قواعد توقيعه في RFC 7515 و7518، وهو الصيغة المعتادة لرموز وصول OAuth 2.0 ورموز هوية OpenID Connect. الحمولة مرمّزة فقط لا مشفّرة: من يملك الرمز يستطيع قراءتها.

ملاحظة أمنية: فك الترميز ليس تحققاً. يجب على الخادم فحص التوقيع بخوارزمية مثبّتة ورفض alg=none والتحقق من exp وiss وaud — والرمز الحقيقي الذي يُلصق في أي مكان يبقى سراً حتى ينتهي.

اقرأ الدليل: ما هو JWT؟ شرح رموز JSON Web Token

رمز JWT ثلاثة مقاطع Base64url هي header.payload.signature: يستطيع أي شخص فكّ ترميز المقطعين الأولين، والتوقيع يغطيهما كما كُتبا حرفياً.

ثلاثة مقاطع Base64url تفصل بينها نقاط

الجزء 1:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
.الجزء 2:eyJzdWIiOiJ1c2VyXzhmM2EyYyIsIm5hbWUiOiJM…ZTc3In0
.الجزء 3:kdLA0Qli1L94KTgKtg-iHDDKIfyhZ1kz6A2v81TBOlg
  • 1–2مُدخل التوقيع: نص Base64url لهذين المقطعين تصل بينهما نقطة، لا JSON الناتج عن فكّ الترميز.
  1. 1الترويسةيُفكّ ترميزها من Base64url إلى JSON: نوع الرمز والخوارزمية، وهي HS256.{"typ":"JWT","alg":"HS256"}
  2. 2الحمولةيُفكّ ترميزها من Base64url إلى مطالبات JSON. مرمّزة فقط لا مشفّرة: من يملك الرمز يستطيع قراءتها.{"sub":"user_8f3a2c","name":"Layla Hassan","role":"admin",…}
  3. 3التوقيعHMAC-SHA256 للمقطعين 1 و2 بالسرّ: 32 بايت تُرمَّز بـ Base64url. يثبت أنهما لم يُعدَّلا.HMAC-SHA256(secret, "eyJ0eXAi…" + "." + "eyJzdWIi…")تتحقق الأداة من HS256/384/512 بالسرّ الذي تُدخله؛ أما RS/ES/PS فتحتاج إلى المفتاح العام للجهة المُصدِرة، لذا يُفكّ ترميزها هنا دون التحقق منها

رمز المثال في الأداة، وحمولته مختصرة هنا. ويُتحقَّق من توقيعه بسرّ المثال your-256-bit-secret.

كيفية استخدام مفكّك ترميز JWT

  1. الصق رمز JWT (تعمل ترويسة «Authorization: Bearer …» الكاملة أيضاً).
  2. اطّلع على الملخص: الخوارزمية، وهل انتهت صلاحية الرمز، ومتى صدر ومتى تنتهي صلاحيته.
  3. افحص JSON الترويسة والحمولة وجدول المطالبات الذي يوضّح معنى كل مطالبة.
  4. أدخل سرّ HMAC اختيارياً للتحقق من التوقيع محلياً.
  5. انسخ JSON الناتج عن فكّ الترميز أو نزّله.

مزايا مفكّك ترميز JWT

  • يفكّ ترميز الترويسة والحمولة ومقطع التوقيع لأي رمز JWS، ويتعرّف على رموز JWE
  • يشرح المطالبات المسجّلة (RFC 7519) ومطالبات OIDC/OAuth الشائعة في جدول سهل القراءة
  • يحوّل exp وiat وnbf إلى تواريخ بتوقيت UTC مع ملاحظات مثل «تنتهي الصلاحية خلال ساعتين»
  • لوحة ملخّص تعرض الخوارزمية وحالة انتهاء الصلاحية ووقت الإصدار ومدة الصلاحية
  • تحقق اختياري من توقيع HS256/HS384/HS512 باستخدام سرّ مشترك (UTF-8 أو Base64)
  • يزيل بادئة «Bearer» وعلامات الاقتباس والمسافات تلقائياً؛ مع فكّ ترميز فوري أثناء اللصق
  • يعمل بالكامل في متصفحك — لا تُرفع الرموز أبداً

مثال على مفكّك ترميز JWT

فكّ ترميز رمز وصول HS256

الإدخال:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzhmM2EyYyIsIm5hbWUiOiJMYXlsYSBIYXNzYW4iLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6NDEwMjQ0NDgwMH0.…

النتيجة:

{
  "sub": "user_8f3a2c",
  "name": "Layla Hassan",
  "role": "admin",
  "iat": 1700000000,
  "exp": 4102444800
}

Algorithm: HS256 · Expired: No · Issued: 2023-11-14 22:13:20 UTC · Expires: 2100-01-01 00:00:00 UTC

الأسئلة الشائعة حول مفكّك ترميز JWT

هل من الآمن لصق رمز إنتاج (production) هنا؟

يُفكّ ترميز الرمز بواسطة JavaScript في متصفحك ولا يُرسل إلى أي خادم ولا يُسجَّل ولا يُخزَّن. ومع ذلك، تعامل مع الرموز الحيّة بوصفها أسراراً: يمكن لأي شخص يحصل على أحدها استخدامه حتى تنتهي صلاحيته.

لماذا أستطيع قراءة الحمولة دون معرفة السر؟

رمز JWT موقَّع وليس مشفَّراً. الترويسة والحمولة مرمَّزتان بـ Base64url فقط، لذا يمكن لأي شخص قراءتهما. يثبت التوقيع أن الرمز لم يُعدَّل — لكنه لا يخفي محتواه. أما الرموز المشفَّرة (JWE) فتتكون من خمسة مقاطع ولا يمكن قراءتها دون المفتاح.

هل تستطيع الأداة التحقق من التوقيع؟

نعم لرموز HMAC (HS256 وHS384 وHS512): أدخل السرّ المشترك ويُفحص التوقيع محلياً باستخدام WebCrypto. أما رموز RS/ES/PS فتحتاج إلى المفتاح العام للجهة المُصدِرة، ويُفكّ ترميزها هنا دون التحقق منها.

ما معنى exp وiat وnbf؟

هي طوابع زمنية بصيغة Unix بالثواني. exp هو وقت توقف الرمز عن الصلاحية، وiat وقت إصداره، وnbf أبكر وقت يجوز استخدامه فيه. يحوّل جدول المطالبات كلاً منها إلى توقيت UTC ويعرض المدة المتبقية.

الرمز الذي لصقته يبدأ بـ «Bearer» — هل هذه مشكلة؟

لا. تُزال البادئتان «Bearer » و«Authorization:» وعلامات الاقتباس المحيطة والمسافات تلقائياً قبل فكّ الترميز.

ملاحظات تقنية

رمز JWS المضغوط هو ثلاثة مقاطع Base64url تفصل بينها نقاط. يحوّل مفكّك الترميز الأبجدية الآمنة لعناوين URL إلى بايتات، ويصلح الحشو (padding) المفقود، ويحلّل الترويسة والحمولة بوصفهما JSON. أما الرموز ذات المقاطع الخمسة فهي JWE (مشفَّرة) — تُعرض ترويستها لكن لا يمكن قراءة حمولتها دون المفتاح.

يحسب التحقق من التوقيع HMAC-SHA على «header.payload» باستخدام WebCrypto ويقارنه ببايتات التوقيع. أما الخوارزميات غير المتماثلة (RS/ES/PS/EdDSA) فيُفكّ ترميزها دون التحقق منها، لأن ذلك يتطلب المفتاح العام للجهة المُصدِرة.

المراجع

  • RFC 7519: JSON Web Token (JWT)IETF · 2015يعرّف صيغة JWT — الترويسة والحمولة والتوقيع — والمطالبات المسجّلة iss وsub وaud وexp وnbf وiat وjti.
  • RFC 7515: JSON Web Signature (JWS)IETF · 2015كيف يُوقَّع JWT ويُسلسَل: الترويسة المحمية ومدخل التوقيع والتسلسل المضغوط.
  • RFC 7518: JSON Web Algorithms (JWA)IETF · 2015الخوارزميات وراء ترويسة alg: HS256/384/512 وRS256 وES256 ومتطلبات حجم المفتاح لكل منها.