TK TaskKit
مقارنات

مقارنة · تحديث 2026-05-05

أدوات JWT في TaskKit مقابل jwt.io

كلتا الأداتين تفك ترميز JSON Web Tokens وتتحقّق منها بالكامل في المتصفح. الفروقات العملية في ما تحمّله كل أداة بجانب المحرّر، كيف تتصرف عند توقيع بطيء أو معادٍ، وعدد قليل من الميزات الموجودة عند هذه وغير موجودة عند تلك. الملخص أدناه مُقاس؛ بقية الصفحة تُكمل الصورة.

الملخص

  • الخصوصية: TaskKit يقوم بـ 0 استدعاء لأطراف ثالثة عند أول عرض. jwt.io يقوم بـ 10 (OneTrust للموافقة على الكوكيز، Adobe Experience Platform، Google Tag Manager).
  • تغطية الخوارزميات وصيغ المفاتيح: متطابقة عند الاثنين لمواصفة JWT — HS / RS / PS / ES / EdDSA، JWK و JWKS كاملة (مطابقة عبر kidx5c، PKCS#1 / PKCS#8 / X.509 PEM. TaskKit يقبل إضافةً مفتاح EdDSA كخام hex أو base64url.
  • سلامة وقت التشغيل: TaskKit يتحقّق من التواقيع في Web Worker بمهلة 2 ثانية، فلا يقدر token معادٍ على تجميد الصفحة. jwt.io يتحقّق على الـ main thread.
  • أين jwt.io أقوى: دليل مكتبات منسَّق، صفحة Introduction طويلة، وروابط لكل claim إلى الـ RFCs المعنية.
  • ما يتركه TaskKit عن قصد: الجلب التلقائي للـ JWKS من رابط (يتطلّب استدعاء صادر). افتح فاكّ TaskKit.

الخصوصية، بالأرقام

كلتا الأداتين تدّعي أن العمل يجري في المتصفح. هذا الادعاء قيمته في إمكانية التحقّق منه. كل صفحة أدناه حُمّلت في 2026-05-05 على ملف Chrome جديد بكاش ممسوح، وكل طلب شبكة صادر اُحتسب قبل كتابة حرف واحد. نفس الاختبار يجري على فاكّ JWT في TaskKit.

الشبكة عند أول عرض jwt.io TaskKit
طلبات لأطراف ثالثة100
OneTrust لموافقة الكوكيزمحمَّل (5 استدعاءات)لا
Adobe Experience Platform / DTMمحمَّل (3 استدعاءات)لا
Google Tag Managerمحمَّللا
بحث جغرافينقطة OneTrust الجغرافيةلا
شريط موافقة الكوكيزنعم، يحجب أول عرض حتى تغلقهلا يوجد
جدار تسجيل دخول للمزايا المتقدمةلالا

كل واحدة من هذه الاستدعاءات تُطلَق قبل أن تلصق الـ token. لا واحد منها ضروري لفك ترميز JWT — كلها تحليلات، إدارة وسوم، وبنية تدفّق الموافقة. TaskKit ما يشحن أيّ منها. المزيد عن طريقة تعامل TaskKit مع بياناتك.

مصفوفة الميزات

كلتا الأداتين تغطّيان مواصفة JWT بالكامل تقريباً. تحت ما يقبله كل منهما اليوم، مجمَّعاً حسب الفئة.

الإمكانية jwt.io TaskKit
الخوارزميات
HS256 / 384 / 512نعمنعم
RS256 / 384 / 512نعمنعم
PS256 / 384 / 512نعمنعم
ES256 / 384 / 512نعمنعم
EdDSA (Ed25519)نعمنعم (عبر @noble/ed25519)
صيغ المفاتيح
JWK (مفرد)نعمنعم
JWKS مع بحث kidنعمنعم
PEM SPKI (BEGIN PUBLIC KEY)نعمنعم
PEM PKCS#1 RSA (BEGIN RSA PUBLIC KEY)جزئينعم (قارئ ASN.1 محلي)
شهادة X.509 (BEGIN CERTIFICATE)نعمنعم (استخراج SPKI تلقائياً)
التقاط x5c من الـ header تلقائياًنعمنعم (السلسلة غير متحقَّق منها، يُذكر صراحةً)
EdDSA كـ hex / base64url خاملانعم (64 رمزاً ست عشرياً أو 43 رمز base64url)
سلامة التحقّق
عزل في Web Workerلانعم
مهلة catastrophic backtrackingلانعم (2 ثانية)
رفض alg:none مع شرحنعمنعم
الموقّع
تحرير الـ header / payloadنعمنعم
حقول نموذج للـ claims المسجَّلةلانعم
قبول مفاتيح PKCS#1 الخاصة مباشرةًلانعم (تُلَفّ تلقائياً إلى PKCS#8)
EdDSA الخاص كـ hex / base64urlلانعم
token مثال بنقرة واحدةنعمنعم (iat/exp تُحسب لحظياً)
الخصوصية / وقت التشغيل
كل المعالجة في المتصفحنعمنعم
صفر استدعاءات شبكة لأطراف ثالثةلانعم
شريط موافقة الكوكيزنعملا يوجد
Cloudflare Web Analytics اختياري (يحترم الخصوصية، مطفأ افتراضياً)مطفأ ما لم يُستضف ذاتياً مع token

سلامة وقت التشغيل

verify في WebCrypto سريع على التواقيع المُحكَمة. على الإدخال المعادي ليس كذلك. أُسس RSA مرضيّة، مفاتيح ضخمة، تواقيع Ed25519 معطوبة، أو JWKS مصمَّمة بخبث — كلها تقدر تحبس المتحقّق طويلاً بما يكفي لتجميد التبويب. وهذا قلق حقيقي حين يأتي الـ token الذي أمامك من مصدر غير موثوق.

TaskKit يشغّل التحقّق من التوقيع في Web Worker مخصَّص بمهلة 2 ثانية حقيقية. لو تجاوز الـ worker الميزانية، يُنهَى وتظهر الصفحة خطأً بدل أن تعلق. jwt.io يتحقّق على الـ main thread، فالتوقيع البطيء يعني صفحة بطيئة. نفس البنية تحمي مختبر التعابير المنتظمة في TaskKit (ضد backtracking من نوع (a+)+b) ومنسّق JSON (ضد parses بحجم ميغابايت متعددة).

تفاصيل المحرّر اللي تفرق يومياً

  • تظليل بثلاثة ألوان داخل الإدخال. الاثنتان تلوّنان أجزاء الـ token الثلاثة، لكن jwt.io يلوّنها فقط في لوحة «decoded» للقراءة فقط. TaskKit يلوّن الأجزاء داخل الـ textarea اللي تحرّر فيها فعلاً، فيسهل ملاحظة نقطة مُلصَقة في غير محلها.
  • تسميات claims دائماً مرئية. أسماء الـ claims المبسَّطة في jwt.io (iat → "Issued at") مخفيّة خلف تبويب «Claims Breakdown». TaskKit يعرضها inline تحت الـ payload، فالتواريخ والأوصاف ظاهرة بنظرة واحدة.
  • تعامل صريح مع x5c. لمّا يُستخدم x5c من الـ header للتحقّق، شريط النتيجة في TaskKit يقول «تم التحقّق بشهادة x5c من الـ header (السلسلة غير متحقَّق منها)» بدل ما يوحي بثقة من البداية للنهاية. التحقّق من السلسلة وصولاً لمرجع تصديق يحتاج جلب جذور CA، وهذا خارج نطاق أداة تشتغل في المتصفح فقط.
  • مفتاح تبديل HMAC base64url. بعض مفاتيح HMAC تُحفظ بايتات مرمَّزة بـ base64url (مثلاً مفتاح JWKS من نوع oct فيه حقل k). مفتاح تبديل صغير بجانب رقاقة الخوارزمية يبدّل تفسير حقل السر بين سلسلة حرفية وبايتات base64url، فما تحتاج تفك الترميز بنفسك.
  • إدخال مفتاح EdDSA خام. الصق مفتاح Ed25519 كـ 64 رمزاً ست عشرياً، 43 رمز base64url، JWK، أو PEM. jwt.io يتوقّع PEM أو JWK فقط.

أين jwt.io أقوى

المقارنة المفيدة ليست عرضاً من جانب واحد. ثلاثة أشياء يفعلها jwt.io أفضل بوضوح اليوم:

  • دليل المكتبات. فهرس منسَّق وقابل للتصفّح لمكتبات JWT حسب اللغة. لو تبحث عن تنفيذ تضيفه لخدمة، فدليل jwt.io هو المكان الصحيح.
  • صفحة Introduction طويلة. صفحة كانونية واحدة لـ«ما هو JWT» تشرح المفهوم من البداية للنهاية. شرح TaskKit أسفل الفاكّ أقصر وموجَّه للأداة.
  • روابط RFC لكل claim. كل claim مسجَّل يربط بقسم RFC الذي يعرّفه. شيء صغير، لكنه مفيد لمّا تتحقّق من الالتزام بالمواصفة.

ما يتركه TaskKit عن قصد

ضمان الخصوصية أسهل عند عدم وجود أبواب خلفية مدمَجة. بضع ميزات تقدّمها أدوات أخرى مفقودة هنا عن قصد.

  • OIDC auto-discovery. بعض الأدوات تخلّيك تلصق رابط issuer وتجلب صامتاً .well-known/openid-configuration للمفاتيح. هذا طلب صادر من متصفحك إلى طرف ثالث — والرابط نفسه قد يكشف تفاصيل الـ deployment. TaskKit يطلب منك أن تلصق الـ JWKS بنفسك.
  • حقل JWKS عبر URL. نفس المنطق. أمر curl من سطر واحد في طرفيتك يتفوّق على fetch صادر من الصفحة التي تصحّحها.
  • التحليلات افتراضياً. الكود يدعم Cloudflare Web Analytics اختياري يحترم الخصوصية، لكنه يبقى مطفأ إلا إذا فعّله المُشغّل صراحةً. النسخة المستضافة على taskkit.net مطفأة كذلك.
  • الحسابات والتاريخ على الخادم. الحفظ والمشاركة تحدثان عبر URL fragments حيثما كان ذلك مدعوماً. لا شيء يُخزَّن على خادم لأن لا يوجد خادم.

جرّب أدوات JWT في TaskKit

المنهجية

اختُبر في 2026-05-05 على Chrome بكاش ممسوح وكوكيز first-party محذوفة. طلبات الشبكة عُدَّت من تحميل الصفحة حتى أول ضغطة مفتاح. مصفوفة الميزات تعكس سلوك كل أداة في ذلك التاريخ، وستُعاد المراجعة لمّا تُطلق أيّ من الأداتين تغييراً جوهرياً.

jwt.io علامة تجارية لمالكها. هذه الصفحة لا ترتبط بـ jwt.io ولا تحظى بدعمه.