فك ترميز JWT

فك ترميز رموز JWT وافحصها

يجري التحقق في متصفحك بواجهة WebCrypto؛ لا يرسل المفتاح ولا الرمز إلى خوادمنا. HS256/384/512 وRS256/384/512 وPS256/384/512 وES256/384/512 وEdDSA (Ed25519، في المتصفحات التي تدعمه).

إنشاء رمز موقع

يجري التوقيع في متصفحك بواجهة WebCrypto؛ لا يرسل المفتاح إلى خوادمنا. وقع بمفتاح للاختبار: المفتاح الخاص المستخدم في الإنتاج يجب أن يبقى على خادمه.

نبذة عن فك ترميز JWT

تعرض أداة فك ترميز JWT ترويسة رمز JSON Web Token موقع وحمولته بصيغة JSON منسقة بمسافات بادئة، مع الحفاظ على الأعداد الكبيرة كما كتبت، وتحول الحقول exp وiat وnbf إلى تواريخ UTC مع ملاحظة بانتهاء الصلاحية أو بأن الرمز لم يصبح صالحا بعد. وتتحقق أيضا من التوقيع محليا بواجهة WebCrypto: بسر مشترك لـ HS256 وHS384 وHS512، أو، لرموز RS وPS وES وEdDSA (Ed25519)، بمفتاح عام بصيغة PEM أو JWK، أو JWK Set، أو شهادة X.509، أو مفتاح خاص لا يستخدم منه إلا الجزء العام. وتوقع رموزا جديدة بسر أو بمفتاح خاص. وترفض الرموز غير الموقعة (alg none) والمفتاح العام المقدم لرمز HS. أما الرمز المشفر (JWE، خمسة أجزاء) فلا تعرض منه إلا الترويسة.

مثال

رمز HS256 بعد فك ترميزه، ثم التحقق منه بالسر my-secret (ملاحظة exp تتوقف على تاريخ اليوم؛ انتهت صلاحية هذا الرمز في 1 جانفي 2026):

الرمز

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MiIsIm5hbWUiOiJBZGEiLCJpYXQiOjE3NjcyMjU2MDAsImV4cCI6MTc2NzIyOTIwMH0.tSbItJNpja-KxR9Sew4UseTRkf2DxToP11X65NZgLJw

فك الترميز والتحقق من التوقيع

الترويسة
{
  "alg": "HS256",
  "typ": "JWT"
}

الحمولة
{
  "sub": "42",
  "name": "Ada",
  "iat": 1767225600,
  "exp": 1767229200
}
exp: 1 جانفي 2026، الساعة 01:00:00 (UTC) — انتهت صلاحيته
iat: 1 جانفي 2026، الساعة 00:00:00 (UTC)

تم التحقق من التوقيع (HS256): هذا الرمز موقع بهذا المفتاح ولم يطرأ عليه أي تعديل. تحقق أيضا من exp / nbf في الحمولة بعد فك ترميزها.

كيفية فك ترميز رمز JWT والتحقق منه

  1. 1الصق الرمز، وهو ثلاثة أجزاء بترميز base64url تفصل بينها نقاط، وانقر على «فك الترميز».
  2. 2اقرأ الترويسة والحمولة، وتحتها تواريخ exp وiat وnbf بتوقيت UTC.
  3. 3للتحقق من التوقيع، الصق السر أو المفتاح العام تحت «تحقق من التوقيع»؛ ولرمز HS، اضبط «صيغة السر» على نص أو base64 / base64url.
  4. 4انقر على «التحقق من التوقيع» لتحصل على «تم التحقق من التوقيع» أو «توقيع غير صالح» مع السبب.
  5. 5لإنشاء رمز، اكتب ترويسته وحمولته تحت «إنشاء رمز موقع»، والصق السر أو المفتاح الخاص، وانقر على «توقيع».

الصيغ والحدود

صيغة الرمز
رمز JWT موقع بالشكل المضغوط (ثلاثة أجزاء)؛ من الرمز المشفر (JWE، خمسة أجزاء) لا تعرض إلا الترويسة؛ ولا تدعم الحمولات غير المرمزة
الخوارزميات
HS256/384/512 وRS256/384/512 وPS256/384/512 وES256/384/512 وEdDSA (Ed25519، في المتصفحات التي يدعمه فيها WebCrypto)
المفاتيح المقبولة
سر نصي أو بترميز base64/base64url، أو JWK من نوع oct، أو مفتاح عام PEM (وكذلك PKCS#1 RSA)، أو شهادة X.509، أو مفتاح خاص PEM (PKCS#8 أو PKCS#1 RSA أو SEC1 EC)، أو JWK من نوع RSA أو EC أو OKP، أو JWK Set (المفتاح الذي يطابق kid فيه قيمة الترويسة)
المفاتيح المرفوضة، مع السبب
المفتاح العام لرمز HS، والمفاتيح الخاصة المحمية بعبارة مرور؛ وعند التحقق يقتصر المفتاح الخاص على جزئه العام
التوقيع
الخوارزميات نفسها، بسر أو بمفتاح خاص (PEM أو JWK)؛ وتبقى الترويسة والحمولة كما كتبتا
ما لا تتحقق منه الأداة عنك
exp وnbf وiss وaud: تعرض التواريخ، ويبقى القرار لتطبيقك

أين يعالج رمزك

يجري فك الترميز والتوقيع والتحقق من التوقيعات في هذه الصفحة بواجهتي atob وWebCrypto في متصفحك؛ لا يرسل الرمز ولا المفتاح إلى خوادمنا. إذا فعلت الترجمة من قائمة اللغات، تتلقى Google النص المعروض في الصفحة، بما فيه الترويسة والحمولة بعد فك ترميزهما، فأبق الترجمة معطلة مع الرموز الحقيقية. وعند فشل فك الترميز ترسل إلينا الرسالة رمز JWT غير صالح، واسم الأداة، واسم متصفحك وإصداره.

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

هل تتحقق هذه الأداة من توقيع JWT؟

نعم. الصق السر المشترك لـ HS256 أو HS384 أو HS512، أو المفتاح العام للجهة المصدرة بصيغة PEM أو JWK لـ RS أو PS أو ES أو EdDSA، ثم انقر على «التحقق من التوقيع». تقرأ الخوارزمية من ترويسة الرمز، ويرفض alg none.

هل يمكن قبول رمز تم التحقق منه دون خطر؟

ليس وحده. التوقيع الصحيح يثبت أن الرمز وقع بهذا المفتاح ولم يتغير منذ ذلك. ويبقى على تطبيقك أن يتحقق من exp وnbf والجهة المصدرة (iss) والجمهور (aud)؛ فهذه الصفحة تعرضها فقط.

لماذا يرفض مفتاحي العام لرمز HS256؟

قبوله يفتح الباب لهجوم الخلط بين الخوارزميات، حيث يستخدم مفتاح عام كسر HMAC. يجب التحقق من رمز HS بسره المشترك، لذلك يرفض مفتاح PEM أو JWK من غير نوع oct لـ HS256 وHS384 وHS512.

هل يمكنني لصق JWK Set أو شهادة؟

نعم. من JWK Set يستخدم المفتاح الذي يطابق kid فيه قيمة ترويسة الرمز؛ وإن لم يكن هناك kid، فيجب ألا يحتوي على أكثر من مفتاح واحد لخوارزمية الرمز. ومن شهادة X.509 يستخدم مفتاحها العام: لا يتحقق من تواريخ الشهادة ولا من سلسلتها.

هل يمكنني إنشاء رمز JWT هنا؟

نعم. تحت «إنشاء رمز موقع»، اكتب الترويسة (قيمة alg فيها تحدد الخوارزمية) والحمولة، والصق السر المشترك أو المفتاح الخاص (PEM أو JWK)، وانقر على «توقيع». يبقى المفتاح في متصفحك؛ وقع بمفتاح للاختبار لا بمفتاح الإنتاج.

لماذا يظهر «فك الترميز» رسالة رمز JWT غير صالح؟

ليس في النص ثلاثة أجزاء تفصل بينها نقاط، أو أحد الأجزاء ليس JSON بترميز base64url. والرمز المشفر (JWE، خمسة أجزاء) لا يرفض: تعرض ترويسته، وتبقى حمولته مشفرة. لا ينظر «فك الترميز» إلى التوقيع أبدا، فلا يمكن أن يسبب توقيع خاطئ هذه الرسالة.

نصائح وحيل

  • ✓قد ينتهي سر منسوخ من ملف ‎.env بفاصل سطر؛ وعندما تكون «صيغة السر» على نص، يذكر الحكم ذلك إذا طابق السر من دونه.
  • ✓إذا وقع رمز PS256 بطول ملح آخر، يذكر الحكم هذا الطول ويشرح لماذا ترفضه المكتبات الملتزمة بالمعيار.