مطور / التوقيعات
مولد HMAC (SHA-256، SHA-512)
ولّد توقيع HMAC لرسالة ومفتاح سري باستخدام SHA-256 أو SHA-384 أو SHA-512 أو SHA-1، بصيغة hex وBase64، لاختبار توقيعات webhook وواجهة API.
مولد HMAC (SHA-256، SHA-512): يجمع HMAC بين مفتاح سري ورسالة باستخدام دالة تجزئة، لذلك لا يمكن إنتاج التوقيع نفسه إلا لمن يملك المفتاح. يُحسَب التوقيع باستخدام Web Crypto API في المتصفح، وهي نفس الواجهة التي يستخدمها المتصفح للاتصالات عبر HTTPS. يُسمح بمفتاح فارغ؛ ويُعامَل على أنه مفتاح مكوّن من 0 بايت، وفقًا لتعريف معيار HMAC. يعمل 100% محليًا في المتصفح، من دون رفع أي ملفات إلى الخادم.
- الفئة
- أدوات المطورين
- مرات التشغيل
- في المتصفح
- التكلفة
- مجاني · بلا تسجيل
- التوفر
- جاهز للاستخدام
تعمل بالكامل في المتصفح
——تُقرأ الرسالة كنص UTF-8 تمامًا كما كُتبت، بما في ذلك المسافات وفواصل الأسطر؛ ويؤدي سطر جديد في النهاية إلى تغيير النتيجة. تُوقَّع خطافات الويب من خدمات مثل Stripe وGitHub باستخدام HMAC-SHA256 بهذه الطريقة.
التحقق من webhook
خُذ نص الطلب الخام قبل إجراء أي تحليل، واحسب HMAC باستخدام السر المشترك، ثم قارنه بترويسة التوقيع باستخدام مقارنة بزمن ثابت، حتى لا تكشف مدة التنفيذ عدد الأحرف المتطابقة. ارفض الطلبات التي يزيد عمر طابعها الزمني على بضع دقائق لمنع إعادة تشغيلها.
لإنشاء hash من دون مفتاح، استخدم أداة إنشاء hash؛ وللرموز الموقعة، استخدم فك ترميز JWT.
المفاتيح
يمنحك المفتاح الذي يساوي طوله ناتج hash، أي 32 بايتًا عشوائيًا مع SHA-256، القوة الكاملة؛ أما المفاتيح الأطول فتُجرى لها hash أولًا. أبقِ المفاتيح خارج مستودعات التعليمات البرمجية، وبدّلها إذا تسرّبت.
طريقة الاستخدام
- الصق الرسالة كما أُرسلت تمامًا، مثل الجسم الخام لـ webhook.
- أدخل المفتاح السري كنص أو بصيغة سداسية عشرية، واختر دالة التجزئة.
- قارن النتيجة بصيغة hex أو Base64 بالتوقيع الذي تلقيته.
الخصوصية والقيود
تبقى الرسالة والمفتاح في المتصفح؛ ولا يُرسَل أي شيء إلى أي جهة.
أدوات ذات صلة
الأسئلة الشائعة
لماذا لا يتطابق توقيعي مع توقيع webhook؟
يجب أن تكون الرسالة الموقَّعة هي الجسم الخام بايتًا مقابل بايت: إذ يؤدي تحليل JSON وإعادة تسلسله، أو حذف سطر جديد أو إضافته، إلى تغيير الرسالة. توقّع بعض الخدمات الطابع الزمني والجسم معًا، مثل t=…،payload في Stripe.
هل ما زال HMAC-SHA1 آمنًا؟
يُعد آمنًا في HMAC، بخلاف استخدام SHA-1 للتجزئة العادية، لكن ينبغي للأنظمة الجديدة استخدام HMAC-SHA256.
hex أم Base64؟
هما طريقتان لكتابة البايتات نفسها؛ استخدم التنسيق الذي تعرضه الخدمة. يستخدم GitHub صيغة hex مع البادئة sha256=، بينما تستخدم خدمات أخرى كثيرة Base64.
أداة مجانية · عدد مرات الاستخدام في المتصفح · لا يتطلب حسابًا