🔧Toolify

محلل JWT (الترويسة، الحمولة، التوقيع، انتهاء الصلاحية)

الصق JWT لفك تشفير الترويسة والحمولة فوراً كـ JSON. يتعرف على المطالبات القياسية (iat وexp وnbf) ويحول طوابع Unix الزمنية إلى ISO 8601. يُعلّم الرموز المنتهية الصلاحية أو غير الصالحة بعد.

يُفكَّك بالكامل في متصفحك. الرمز لا يسافر عبر الشبكة.

الترويسة

{
  "alg": "HS256",
  "typ": "JWT"
}

الحمولة

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "iat": 1730000000,
  "exp": 4886000000
}
التوقيع موجود
صدر في (iat)
2024-10-27T03:33:20.000Z
ينتهي في (exp)
2124-10-30T22:13:20.000Z

كيف تعمل

كيف يبدو JWT

JWT عبارة عن ثلاثة مقاطع مُشفَّرة بـ Base64url مُتَّصلة بنقاط: ترويسة.حمولة.توقيع. كل مقطع هو كائن JSON مُشفَّر للإرسال الآمن في URL. تُعلن الترويسة خوارزمية التوقيع، وتحمل الحمولة المطالبات (الموضوع، الانتهاء، البيانات المخصصة)، ويتيح التوقيع للمستلم التحقق من النزاهة إذا كان لديه المفتاح.

يقرأ هذا المحلل المقطعين الأولين فقط. التوقيع هو المقطع الثالث لكن التحقق منه يتطلب المفتاح السري/العام — وهي عملية منفصلة لا نُجريها هنا.

المطالبات القياسية الجديرة بالمعرفة

iss (المُصدِر): من أنشأ الرمز. iat (صدر في): متى، كطابع Unix الزمني. exp (الانتهاء): متى يتوقف عن الصلاحية، أيضاً Unix. nbf (ليس قبل): أبكر وقت يجب احترامه. sub (الموضوع): الكيان الذي يمثله، غالباً معرف المستخدم. aud (الجمهور): لمن الرمز، عادةً URL الخدمة.

ليست كلها إلزامية؛ JWTs البسيطة غالباً تحتوي فقط sub + iat + exp. المطالبات المخصصة هي أي شيء آخر — تُقيم جنباً إلى جنب مع القياسية في الحمولة.

لماذا الفك لا يساوي التحقق

يمكن لأي شخص فك JWT — الترويسة والحمولة مجرد JSON مُشفَّر بـ Base64. لهذا نقول 'لا تضع أسراراً في الحمولة أبداً': إنها فعلياً عامة.

التحقق يعني فحص التوقيع مقابل المفتاح السري (HMAC) أو المفتاح العام (RSA/ECDSA). بدون التحقق، لا يمكنك الوثوق بأي مطالبة داخل الحمولة — يمكن للمهاجم صياغة أي حمولة يريدها.

استخدم هذه الأداة لفحص الرموز أثناء التصحيح. استخدم مكتبة JWT على خادمك للتحقق منها في الإنتاج.

أسئلة شائعة

هل يمكنني التحقق من التوقيع هنا؟

لا — التحقق يحتاج المفتاح السري أو العام، الذي يجب ألا يغادر بيئة موثوقة. استخدم مكتبة JWT من جانب الخادم (jsonwebtoken لـ Node، PyJWT لـ Python، إلخ).

هل يغادر الرمز متصفحي؟

أبداً. الفك يعمل محلياً؛ لا يوجد لدينا نقطة نهاية خادم لاستقباله.

لماذا رمزي 'غير صالح'؟

شائع: النسخ/اللصق أضاف/حذف مسافات بيضاء، أحد المقاطع الثلاثة مفقود، أو أحد المقاطع Base64url مُشوَّه. حذّف وأعد المحاولة.

ما الفرق بين Base64url وBase64؟

Base64url يستبدل '+' بـ '-' و'/' بـ '_' ويحذف حشو '=' لجعل السلسلة المُشفَّرة آمنة في URLs ورؤوس HTTP. JWTs تستخدم دائماً Base64url.

لماذا تظهر حمولتي بنص غير مقروء Unicode؟

نفك بـ UTF-8 وهو المعيار. إذا كانت الحمولة مُشفَّرة بطريقة مختلفة، قد يفشل JSON.parse. معظم مصدري JWT يُشفّرون UTF-8 بشكل صحيح.

هل HS256 آمن؟

إذا كان السر طويلاً بما يكفي (≥256 بت) ومحفوظاً سرياً، نعم. نقاط ضعف HS256 الشائعة هي الأسرار الضعيفة وقبول الرموز بـ alg='none'. استخدم أسراراً عشوائية ≥32 حرفاً وارفض 'none' بشكل صريح.

لماذا تُفضَّل RS256 على HS256؟

RS256 (RSA غير متماثل) يتيح نشر مفتاح عام للتحقق مع الحفاظ على سرية مفتاح التوقيع. HS256 (HMAC متماثل) يتطلب مشاركة السر مع كل مُحقق. لمعماريات متعددة الخدمات، RS256 أكثر أماناً.

هل يمكنني فك رموز ضخمة؟

الحد العملي ~10 ميغابايت من المدخلات؛ بعد ذلك قد يتباطأ المتصفح. JWTs عادةً أقل من 4 كيلوبايت؛ إذا كانت أكبر، فكّر فيما إذا كنت تُخزّن الكثير في المطالبات.

أدوات ذات صلة

آخر تحديث:

جرّب مطالباتنا للذكاء الاصطناعي ←