الترميز

JWT Encoder/Decoder

ترميز وفك ترميز رموز JWT — الترويسة (Header)، الحمولة (Payload)، توقيع HMAC، والحقول القياسية.

A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.

Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.

How to use it

Common uses

Things to keep in mind

A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.

The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.

مقالة عن هذه الأداة: JWT: بنية الرمز وماذا يعني "فك ترميز" JWT

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

هل فك ترميز JWT يثبت أنه صادر من جهة موثوقة؟

لا. فك الترميز بدون إدخال المفتاح السري يعرض فقط محتوى الـ Header وClaims داخل الـ Payload، لكنه لا يتحقق من صحة التوقيع. لإثبات أن الرمز أصيل ولم يُعدَّل يجب التحقق من التوقيع باستخدام المفتاح الصحيح.

ما الفرق بين exp وnbf وiat في الـ Claims؟

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

هل المفتاح السري الذي أدخله لإنشاء أو التحقق من التوقيع يُرسَل لأي خادم؟

لا، كل عمليات الترميز وفك الترميز وحساب التوقيع تتم محليًا في متصفحك عبر Web Crypto API، ولا يغادر المفتاح أو الرمز جهازك أبدًا.

ما هو هجوم تبديل الخوارزمية إلى "none"؟

إذا وثق الخادم الخلفي بسذاجة بحقل alg الوارد في ترويسة الرمز، يستطيع المهاجم استبداله بـ none وإزالة التوقيع — فيجتاز رمز يحمل بيانات عشوائية عملية التحقق. تفرض المكتبات الموثوقة تحديد الخوارزمية المتوقعة صراحةً عند التحقق.

لماذا لا يُنصح بتخزين JWT في localStorage للجلسات الحساسة؟

يمكن لأي كود JavaScript يعمل على الصفحة الوصول إلى localStorage، لذا فهو عرضة لهجمات XSS — إذ يستطيع سكربت خبيث سرقة الرمز. للرموز الخاصة بالجلسات، يُفضَّل استخدام cookies من نوع httpOnly، غير القابلة للوصول من JavaScript.

مقالات: الترميز

Base64: ما فائدة الترميز وكيف يعمل

كيف يحوّل Base64 البيانات الثنائية إلى نص ASCII، ومتى نحتاج ذلك فعلاً.

Base32: ما الفرق بينه وبين Base64 ومتى يكون أنسب

أبجدية Base32 التي لا تميّز بين حالة الأحرف، والحالات التي تكون فيها أنسب من Base64.

URL Encode/Decode: الترميز بالنسبة المئوية في الروابط

كيف تتحول الأحرف الخاصة في العناوين والمعاملات إلى تسلسلات %XX.

HTML Entities: كيف تعرض الأحرف الخاصة بأمان

لماذا يجب الهروب من الأحرف < > & وكيف يمنع ذلك تعطّل الترميز.

Unicode Escape: ماذا تعني تسلسلات \uXXXX

من أين تأتي تسلسلات مثل \u0041 في JSON وسلاسل جافاسكريبت، وماذا تعني.

ROT13 وشيفرة قيصر: استبدال بسيط للأحرف

لماذا تجعل إزاحة 13 حرفًا خوارزمية ROT13 عكسية ذاتيًا، ولماذا لا تزال تُستخدم اليوم.

Punycode: كيف تعمل النطاقات الدولية في DNS

كيف يتحول نطاق بأحرف غير لاتينية إلى صيغة ASCII تبدأ بالبادئة xn--.

شيفرة مورس: كيف يتحول النص إلى نقاط وشرطات

مبدأ ترميز الحروف كنقاط وشرطات، وأين لا تزال شيفرة مورس تُستخدم اليوم.

Data URI: متى تُضمَّن الصور مباشرة في الكود

كيف يضمّن Data URI محتوى الملف مباشرة في HTML أو CSS، ومتى يستحق ذلك العناء.

Gzip + Base64: ضغط البيانات لنقلها كنص

لماذا تُرمَّز البيانات الثنائية المضغوطة أيضًا بـ Base64 قبل وضعها في حقل نصي.

XML Entities: الهروب من الأحرف في مستندات XML

الكيانات الخمس الإلزامية في XML التي بدونها يتعطّل المستند أثناء التحليل.