محلّل JWT — فك ترميز الرموز
فك ترميز رموز JWT أونلاين مع محلّل JWT المجاني. افحص الترويسة والحمولة والتوقيع وانتهاء الصلاحية والخوارزمية والمطالبات فوراً. 100% في المتصفح — رمزك لا يغادر جهازك. بلا تسجيل، بلا تتبّع.
ما هو JWT؟
رمز ويب JSON، أو JWT (يُنطق 'جوت')، هو تنسيق رمز مدمج وآمن للروابط لحمل المطالبات بين طرفين. وهو معرّف في RFC 7519، ويُعدّ تنسيق بيانات الاعتماد المهيمن الذي تستخدمه رموز وصول OAuth 2.0، ورموز هوية OpenID Connect، ومفاتيح API في مزوّدي المصادقة الحديثين (Auth0، Okta، Clerk، Supabase، Firebase)، ورموز الاتصال بين الخدمات في معماريات الخدمات المصغّرة.
"رمز ويب JSON (JWT) هو تنسيق تمثيل مدمج للمطالبات مخصّص للبيئات المحدودة الحجم مثل ترويسات Authorization في HTTP ومعاملات استعلام URI." — RFC 7519، القسم 1
JWT هو ثلاثة كائنات JSON مرمّزة بـ Base64URL ومفصولة بنقاط: header.payload.signature. تصف الترويسة كيف وُقّع الرمز (مطالبة alg — مثل HS256 أو RS256 — ومطالبة typ، عادةً 'JWT'). تحمل الحمولة المطالبات: المطالبات المسجّلة مثل iss وsub وaud وexp وiat، إضافة إلى أي مطالبات مخصّصة يحتاجها المُصدِر (الدور، النطاق، البريد الإلكتروني، معرّف المستأجر). التوقيع إثبات معتمد على التعمية، يُحسب فوق الترويسة والحمولة بسرّ المُصدِر أو مفتاحه الخاص، يسمح للمستلم باكتشاف العبث.
والأهم، أن JWT مرمّز لا معمّى. يمكن لأي شخص يمتلك الرمز قراءة حمولته — فك الترميز مجرد Base64URL وتحليل JSON. يأتي ضمان الأمان من التوقيع: يستطيع المهاجم قراءة JWT، لكنه لا يستطيع إنتاج JWT مختلف يجتاز التحقّق من التوقيع دون مفتاح التوقيع. لهذا السبب رموز JWT آمنة للتمرير عبر الشبكة، لكنها غير آمنة لملئها بالأسرار.
يُظهر محلّل JWT لك بالضبط ما يحتويه الرمز — الخوارزمية، المطالبات، انتهاء الصلاحية — دون لمس التوقيع. إنه أسرع طريقة للإجابة على 'هل هذا الرمز منتهي الصلاحية؟'، و'ما الدور الذي يمتلكه هذا المستخدم؟'، و'أي مُصدِر سكّ هذا الرمز؟'، أو 'هل هذا رمز alg:none ينبغي أن أرفضه؟'. يجري كل فك ترميز في هذه الأداة محلياً في متصفحك، فلصق رمز إنتاج حي آمن.
غالباً ما يقترن عمل JWT بأدوات مطوّرين أخرى. قد تحتاج إلى فك ترميز مقطع ملفوف بـ Base64URL عند تصحيح رمز مشوّه، أو فك ترميز URL لترويسة Authorization بعد التقاطها من وكيل، أو تحويل مطالبة exp إلى تاريخ بشري يدوياً. للاطّلاع على جولة أعمق حول كيفية توقيع رموز JWT والتحقّق منها وتدويرها في الإنتاج، راجع دليل أساسيات Base64 — Base64URL هو الأساس الذي يُبنى عليه كل JWT.
// Decode a JWT in the browser — header & payload only
function decodeJwt(token) {
const [h, p, s] = token.split('.');
const pad = (seg) => seg + '==='.slice((seg.length + 3) % 4);
const decode = (seg) => JSON.parse(
atob(pad(seg).replace(/-/g, '+').replace(/_/g, '/'))
);
return { header: decode(h), payload: decode(p), signature: s };
}
const { header, payload } = decodeJwt(token);
console.log(header); // → { alg: 'HS256', typ: 'JWT' }
console.log(payload); // → { sub: 'user_123', exp: 1999999999, ... }
// Expiration check
const expired = payload.exp * 1000 < Date.now(); الميزات الرئيسية
فكّ ترميز JWT فوراً
الصق وشاهد JWT مفكوكاً في الوقت الفعلي — تُحلَّل الترويسة والحمولة والتوقيع فوراً. لا زر فك ترميز، ولا رحلة ذهاب وإياب إلى خادم.
اكتشاف انتهاء الصلاحية
يقرأ تلقائياً مطالبة exp ويُظهر شارة حمراء عندما يكون الرمز منتهي الصلاحية، مع تاريخ الانتهاء الدقيق بمنطقتك الزمنية المحلية.
مستقل عن الخوارزمية
يفك ترميز كل خوارزميات JWS — HS256/384/512، وRS256/384/512، وPS256/384/512، وES256/384/512، وEdDSA، وalg:none.
محلي 100%
يجري فك الترميز في متصفحك عبر atob وJSON.parse الأصليتَين. لا يُرفع رمزك أبداً — آمن لبيانات اعتماد الإنتاج.
عرض واعٍ بالمطالبات
يبرز المطالبات المسجّلة في RFC 7519 (iat وexp وnbf وiss وaud وsub وjti) لتكتشف مشكلات المصادقة بنظرة واحدة.
نسخ بنقرة واحدة
انسخ JSON الترويسة أو JSON الحمولة أو التوقيع الخام إلى الحافظة بنقرة واحدة — مثالي لتقارير الأخطاء والاختبارات.
أمثلة
رمز HS256 (صالح)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsIm5hbWUiOiJBbGljZSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTcxNTAwMDAwMCwiZXhwIjoxOTk5OTk5OTk5fQ.4NhxPjwoZxPNuxG-2C5ugGxaUsUJ0QyskAz7Ymz5Sg0
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "user_123",
"name": "Alice",
"role": "admin",
"iat": 1715000000,
"exp": 1999999999
} رمز موقّع بخوارزمية HMAC-SHA256 يتضمّن موضوعاً ودوراً وانتهاء صلاحية في المستقبل — أكثر إعدادات JWT شيوعاً لمصادقة الجلسات.
رمز RS256 (منتهي الصلاحية)
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtleS0yMDI1LTAxIn0.eyJpc3MiOiJodHRwczovL2F1dGguZXhhbXBsZS5jb20iLCJhdWQiOiJhcGkuZXhhbXBsZS5jb20iLCJzdWIiOiI5MDA4NzE2NSIsImlhdCI6MTYwMDAwMDAwMCwiZXhwIjoxNjAwMDAzNjAwLCJzY29wZSI6InJlYWQ6dXNlciB3cml0ZTpwb3N0In0.signature_placeholder
{
"alg": "RS256",
"typ": "JWT",
"kid": "key-2025-01"
}
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "90087165",
"iat": 1600000000,
"exp": 1600003600,
"scope": "read:user write:post"
} رمز وصول بأسلوب OAuth موقّع بـ RSA — لاحظ حقل kid (معرّف المفتاح) في الترويسة وحقل exp الذي يُظهر أن الرمز قد انتهت صلاحيته بالفعل.
رمز هوية OIDC
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJzdWIiOiIxMTA1MDIyNTExNTU4OTkwNzY2Mzk1IiwiYXpwIjoiY2xpZW50LWlkIiwiYXVkIjoiY2xpZW50LWlkIiwiZW1haWwiOiJhbGljZUBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpYXQiOjE3MTUwMDAwMDAsImV4cCI6MTk5OTk5OTk5OSwibm9uY2UiOiJhYmMxMjMifQ.signature
{
"alg": "ES256",
"typ": "JWT"
}
{
"iss": "https://accounts.google.com",
"sub": "110502251155899076639",
"azp": "client-id",
"aud": "client-id",
"email": "alice@example.com",
"email_verified": true,
"iat": 1715000000,
"exp": 1999999999,
"nonce": "abc123"
} رمز هوية OpenID Connect بتوقيع ECDSA، يحمل مطالبات بريد إلكتروني وnonce للحماية من إعادة التشغيل.
رمز alg:none (غير موقّع)
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJkZWJ1Zy11c2VyIiwiaWF0IjoxNzE1MDAwMDAwfQ.
{
"alg": "none",
"typ": "JWT"
}
{
"sub": "debug-user",
"iat": 1715000000
} رمز غير موقّع بـ alg:none. قبول مثل هذا الرمز في الإنتاج ثغرة كلاسيكية في JWT — ارفض دائماً alg:none على جانب الخادم.
كيفية الاستخدام
- 1
الصق رمز JWT لفكّ ترميزه
الصق الرمز كاملاً لفكّ ترميزه — بما في ذلك الأجزاء الثلاثة المفصولة بنقاط — في مربع الإدخال. يعمل المحلّل فوراً في متصفحك؛ لا تحتاج إلى نقر زر.
- 2
اقرأ الترويسة والحمولة والحالة المفكوكة
اقرأ الخوارزمية ونوع الرمز في الترويسة المفكوكة، والمطالبات في الحمولة المفكوكة، وشارات انتهاء الصلاحية / وقت الإصدار في الأعلى. يُعلَّم الرمز منتهي الصلاحية باللون الأحمر.
- 3
انسخ المخرجات المفكوكة
استخدم زر النسخ على كل لوحة لنسخ JSON الترويسة المفكوكة، أو JSON الحمولة المفكوكة، أو التوقيع الخام. لم يُرسل رمزك إلى أي مكان — تم فك الترميز محلياً في متصفحك.
Common Errors
قبول alg:none
يمكن لأي شخص تزوير JWT غير موقّع. لا تسمح أبداً بـ alg:none في الإنتاج — مرّر دائماً قائمة خوارزميات صريحة إلى استدعاء التحقّق.
jwt.verify(token, secret) // library default may allow 'none'
jwt.verify(token, secret, { algorithms: ['RS256'] }) غياب مطالبة exp
JWT بلا exp يعيش للأبد. إذا تسرّب الرمز يوماً، فلا توجد نقطة إلغاء طبيعية. اضبط دائماً انتهاء صلاحية مناسباً لنوع الرمز.
{ "sub": "user_123", "role": "admin" } // no exp { "sub": "user_123", "role": "admin", "exp": 1715003600 } تخزين الأسرار في الحمولة
حمولات JWT ليست معمّاة — يمكن لأي شخص يمتلك الرمز قراءتها. لا تضع أبداً كلمات مرور أو مفاتيح API أو بيانات شخصية غير مقتطعة داخل حمولة JWT.
{ "sub": "user_123", "password": "hunter2" } { "sub": "user_123", "role": "admin" } // payload stays minimal حالات الاستخدام الشائعة
- فكّ ترميز رموز Authorization Bearer
- فكّ ترميز رموز JWT من ترويسات Authorization: Bearer للتحقّق من المطالبات والجمهور وانتهاء الصلاحية التي تستقبلها واجهتك الخلفية.
- فكّ ترميز رموز OAuth 2.0 وOIDC
- فكّ ترميز رموز الوصول ورموز الهوية العائدة من خوادم التفويض (Auth0، Okta، Google، Keycloak) أثناء تكامل OAuth 2.0 وOpenID Connect.
- تشخيص الجلسات المنتهية الصلاحية
- تأكّد في ثانية واحدة ممّا إذا كان الرمز المرفوض منتهي الصلاحية، أو يستخدم جمهوراً خاطئاً، أو يعاني من انحراف ساعة.
- فحوصات تدوير المفاتيح
- اقرأ kid (معرّف المفتاح) في الترويسة للتحقّق من أن تدوير JWKS الخاص بك يُصدر رموزاً موقّعة بالمفتاح المتوقَّع.
- مراجعات الأمان
- رصد الرموز الموقّعة بـ alg:none، أو المفتقرة إلى exp، أو التي تسرّب بيانات شخصية في الحمولة أثناء مراجعة الكود واختبار الاختراق.
- فحص رموز الخدمات المصغّرة
- فك ترميز رموز خدمة-إلى-خدمة داخل شبكة لمعرفة النطاقات والموضوع اللذَين يفوّضهما استدعاء لاحق.
تفاصيل تقنية
- متوافق مع RFC 7519
- يتعامل مع رموز JWS المتوافقة مع RFC 7519 (JWT) وRFC 7515 (JWS) وRFC 7518 (JWA) — كل الخوارزميات المسجّلة مدعومة لفك الترميز.
- فك ترميز Base64URL
- يستخدم أبجدية Base64 الآمنة للروابط (- و_ بدلاً من + و/) المعرّفة في RFC 4648، مع تحليل يتحمّل الحشو.
- أصيل في المتصفح، بلا تبعيات
- مبني على atob وTextDecoder وJSON.parse في المتصفح — لا مكتبات خارجية ولا استدعاءات شبكة ولا قياسات.
أفضل الممارسات
- لا تثق دون تحقّق
- يُظهر المحلّل المطالبات؛ لكنه لا يُثبتها. تحقّق دائماً من التوقيع على جانب الخادم باستخدام مفتاح المُصدِر قبل الوثوق بأي مطالبة.
- ارفض alg:none في الإنتاج
- اضبط مكتبة JWT لديك بقائمة سماح صريحة بالخوارزميات. لا تقبل أبداً alg:none، واشتبه في عدم تطابق alg أثناء تدوير المفاتيح.
- حافظ على حمولات خفيفة
- ضع المعرّفات والمطالبات قصيرة العمر في JWT؛ وأبقِ البيانات الضخمة خلف معرّف جلسة غامض. الرموز الكبيرة تكلّف عرض نطاق على كل طلب.
الأسئلة الشائعة
كيف أفكّ ترميز رمز JWT أونلاين؟
header.payload.signature) — في المحلّل أعلاه. يتم فك الترميز فوراً في متصفحك: تُفكّ ترميز الترويسة والحمولة بـ Base64URL إلى JSON قابل للقراءة، ويُعرض التوقيع كسلسلة خام. يُظهر صف الحالة خوارزمية التوقيع ووقت الإصدار وانتهاء الصلاحية، حتى تكتشف الرمز المنتهي بنظرة واحدة. لفكّ ترميز JWT يدوياً، قسّم الرمز عند النقاط، وفكّ ترميز الجزأين الأوّلين بـ Base64URL، ثم حلّلهما كـ JSON — يمكن لأي شخص يملك الرمز قراءة مطالباته لأن الحمولة مُرمَّزة وليست مُشفَّرة. هذا المحلّل آمن للاستخدام مع رموز الإنتاج لأن لا شيء يغادر جهازك: لا طلب شبكة، ولا تسجيل، ولا تتبّع. ما هو رمز JWT (رمز ويب JSON)؟
هل رمزي آمن مع هذا المحلّل لـ JWT؟
كيف يعمل محلّل JWT؟
هل يمكن لهذه الأداة التحقّق من توقيع JWT؟
ما معنى iat وexp وnbf وiss وaud وsub وjti؟
رمز JWT الخاص بي منتهي الصلاحية — لماذا يحلّله المحلّل رغم ذلك؟
ما الفرق بين JWT وJWS وJWE؟
لماذا يُعدّ alg:none خطيراً؟
alg:none ليس له توقيع — يمكن لأي شخص إنشاؤه، مدّعياً أنه أي مستخدم. كانت مكتبات JWT المبكرة تقبل alg:none افتراضياً، مما أدى إلى فئة معروفة من تجاوزات المصادقة يقوم فيها المهاجم بحذف التوقيع، وتعيين alg إلى none، وتزوير رمز مدير. كل مكتبة JWT ناضجة اليوم ترفض alg:none ما لم يُسمح به صراحةً، ولا ينبغي قبوله أبداً للطلبات الموثّقة. سيعرض هذا المحلّل رمز alg:none لأن فحصه أثناء التصحيح أمر مشروع — لكن تعامل مع أي رمز من هذا النوع يصلك في الإنتاج كرمز معادٍ. ما الخوارزميات التي يدعمها هذا المحلّل لـ JWT؟
هل أخزّن رموز JWT في localStorage أم في ملفات تعريف الارتباط؟
كيف أفك ترميز JWT في Node.js أو Python أو Go؟
jsonwebtoken.decode(token) للقراءة فقط، وjsonwebtoken.verify(token, key) للتحقّق. Python: PyJWT.decode(token, options={'verify_signature': False}) للقراءة، ومرّر مفتاحاً للتحقّق. Go: jwt.ParseUnverified(token, claims) للقراءة فقط، وjwt.Parse(token, keyFunc) للتحقّق. في كل لغة، لا تتحقّق أبداً باستخدام options={'verify_signature': False} في كود الإنتاج — هذا ما تفعله هذه الأداة على الويب عمداً للتصحيح، وهو آمن فقط عندما تفحص لا عندما تصادق. ما الحد الأقصى لحجم JWT؟
لصقت رمزي وحصلت على 'تنسيق JWT غير صالح' — ما الخطب؟
header.payload.signature. الأسباب الشائعة: (1) نسخت عرضاً مقطع الحمولة فقط، (2) لصقت مسافات بيضاء أو أسطراً جديدة في المنتصف، (3) اقتُطع الرمز أثناء النقل (شائع مع التفاف الطرفية)، (4) الرمز هو JWE تنسيقه header.encryptedKey.iv.ciphertext.tag (خمسة أجزاء)، أو (5) الرمز مُرمّز بـ URL وتحتاج إلى فك ترميز الرابط أولاً. افحص القيمة الخام التي أعادتها واجهة API الخاصة بك — تُظهر معظم المحرّرات الأحرف غير المرئية عند التمرير. هل يمكنني فك ترميز JWT دون المفتاح السري؟
رمزي JWT يعمل في Postman لكن الواجهة الخلفية ترفضه — كيف أصحّح؟
أدوات ذات صلة
عرض جميع الأدوات →مولّد تجزئة MD5 — فوري ومجاني أونلاين
أدوات الأمن
أنشئ تجزئة MD5 وSHA-256 وSHA-1 وSHA-512 فوراً — أداة مجانية تعمل في متصفّحك بدون تتبّع أو رفع بيانات. الصق النص واحصل على التجزئة في ثانية. جرّبها الآن.
مولّد كلمات مرور عشوائية — قوي وآمن ومجاني
أدوات الأمن
ولّد كلمات مرور عشوائية قوية فوراً — أداة مجانية أونلاين تعمل في متصفّحك فقط. خصّص الطول والأحرف، دُفعات حتى 50 مع تحليل الإنتروبيا. بياناتك لا تغادر جهازك.
مولّد ومحلل UUID — وضع الدُفعات
أدوات الأمن
أنشئ UUID من النوع v1 وv4 وv5 وv7 فوراً — مولّد مجاني أونلاين مع محلل وتحقق. دُفعات حتى 50. يعمل في متصفّحك 100%. جرّبه الآن.
محوّل الأنظمة العددية — ثنائي وست عشري وعشري وثماني
أدوات التحويل
حوّل بين الأنظمة الثنائية والست عشرية والعشرية والثمانية وأي أساس من 2 إلى 36 فوراً — أداة مجانية أونلاين تعمل في متصفّحك. جرّبها الآن.
محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
ضغط الصور — JPEG وPNG وWebP
أدوات التحويل
اضغط صور JPEG وPNG وWebP أونلاين مجاناً — بياناتك لا تغادر متصفّحك أبداً. قلّل حجم الصورة حتى 80% مع الحفاظ على الجودة. معالجة دفعية لـ 20 صورة.