فك تشفير | فحص | تحقق

> فك تشفير | فحص | تحقق <

// فك تشفير وفحص رموز JSON Web Token (JWT) فوراً

[آمن]

معالجة محلية

فك تشفير JWT بنسبة 100% من جانب العميل. رموزك لا تغادر متصفحك أبداً.

[فوري]

فك تشفير تلقائي

فك تشفير رموز JWT تلقائياً عند اللصق أو الكتابة.

[مجاني]

فحص كامل للرمز

عرض الرأس والحمولة والتوقيع. التحقق من الخوارزمية وانتهاء الصلاحية.

// حول فك تشفير JWT

بنية JWT:

يتكون JSON Web Token (JWT) من ثلاثة أجزاء مشفرة بـ Base64URL مفصولة بنقاط: الرأس.الحمولة.التوقيع. يحدد الرأس الخوارزمية ونوع الرمز. تحتوي الحمولة على المطالبات (البيانات). يتحقق التوقيع من سلامة الرمز.

مثال:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}

حالات الاستخدام الشائعة:

  • >تصحيح رموز المصادقة في تطبيقات الويب
  • >فحص رموز OAuth 2.0 و OpenID Connect
  • >التحقق من انتهاء صلاحية الرمز والمطالبات
  • >فهم بنية JWT وفقاً لـ RFC 7519
  • >التحقق من سلامة ترميز Base64URL

>> الأسئلة الشائعة

س: ما هو JSON Web Token (JWT)؟

ج: JWT هو معيار مفتوح (RFC 7519) لنقل المعلومات بشكل آمن بين الأطراف ككائن JSON. وهو مضغوط وآمن لعناوين URL ويستخدم على نطاق واسع للمصادقة.

س: ما هي الأجزاء الثلاثة لـ JWT؟

ج: يتكون JWT من ثلاثة أجزاء مفصولة بنقاط: الرأس (الخوارزمية والنوع)، الحمولة (المطالبات والبيانات)، والتوقيع (تجزئة التحقق). كل جزء مشفر بـ Base64URL.

س: هل يمكن فك تشفير JWT بدون المفتاح السري؟

ج: نعم، يمكن لأي شخص فك تشفير رأس وحمولة JWT لأنها مشفرة ببساطة بـ Base64URL (وليست مشفرة). المفتاح السري مطلوب فقط للتحقق من التوقيع.

س: ما الفرق بين JWT والمصادقة القائمة على الجلسات؟

ج: تخزن الجلسات الحالة على الخادم باستخدام ملف تعريف ارتباط معرف الجلسة. JWT بدون حالة — يحتوي الرمز نفسه على جميع المعلومات الضرورية.

س: كيف تعمل صلاحية JWT؟

ج: تحدد مطالبة exp في حمولة JWT وقت انتهاء الصلاحية كطابع زمني Unix. بعد هذا الوقت، يجب اعتبار الرمز غير صالح.

// خوارزميات توقيع JWT الشائعة

تحدد قيمة alg في الترويسة طريقة التوقيع. تستخدم HS* سراً مشتركاً، بينما تستخدم RS* وPS* وES* وEdDSA أزواج مفاتيح.

algالخوارزمية
HS256HMAC + SHA-256
HS512HMAC + SHA-512
RS256RSA PKCS#1 v1.5 + SHA-256
PS256RSASSA-PSS + SHA-256
ES256ECDSA P-256 + SHA-256
EdDSAEd25519

// التحقق من JWT في الشيفرة

فك الترميز وحده لا يتحقق من شيء. عند التحقق، حدّد دائماً الخوارزميات المسموح بها صراحةً.

Node.js (jsonwebtoken)   jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT)           jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt)   JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt)          jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt)              Jwts.parser().verifyWith(key).build().parseSignedClaims(token)

>> المزيد من الأسئلة

س: ماذا تعني المطالبات القياسية iss وsub وaud وexp وnbf وiat وjti؟

ج: iss هو المُصدر، وsub الموضوع (عادةً معرّف المستخدم)، وaud الجمهور المقصود، وexp وقت الانتهاء، وnbf بداية الصلاحية، وiat وقت الإصدار، وjti معرّف فريد للرمز. الأوقات بثواني Unix.

س: هل JWT مشفّر؟

ج: رمز JWT الموقّع العادي (JWS) غير مشفّر، بل مرمّز بـ Base64URL فقط، لذا يستطيع أي شخص قراءة محتواه. التوقيع يحمي من التلاعب فقط. لا تضع بيانات حساسة فيه أو استخدم JWE المشفّر.

س: كيف أتحقق من توقيع JWT؟

ج: تحتاج إلى المفتاح: السر المشترك في HS256 أو المفتاح العام في RS256/ES256. يعيد الخادم حساب التوقيع على الترويسة.الحمولة ويقارنه. يعمل هذا المفكّك في المتصفح ولا يتحقق من التوقيع نيابةً عنك، فاستخدم مكتبة موثوقة.

س: ما أخطاء الأمان الشائعة مع JWT؟

ج: من الشائع: الوثوق بقيمة alg الموجودة في الرمز نفسه (خصوصاً none)، وأسرار HS256 الضعيفة، وعدم فحص exp وiss وaud، ووضع بيانات حساسة في الحمولة، وتخزين رموز طويلة العمر في localStorage.

// لغات أخرى