DevToolPal
ع

مولّد HMAC

احسب HMAC-MD5 وHMAC-SHA1 وHMAC-SHA256 وHMAC-SHA384 وHMAC-SHA512 لرسالة باستخدام مفتاح سري، بصيغة سداسية عشرية أو Base64.

يعمل محليًا، دون أي رفع

الخيارات

صيغة المفتاح
المخرجات

الرسالة

0 حرف · 0 B

HMAC

تظهر النتيجة هنا

ماذا تفعل الأداة

يجمع HMAC (رمز مصادقة الرسائل المعتمد على التجزئة، RFC 2104) بين مفتاح سري ودالة تجزئة لتوقيع الرسالة. يعيد المستلم الذي يعرف المفتاح نفسه حساب HMAC ويقارنه بالقيمة المرسلة. إذا عُدّلت الرسالة أو لم يكن المرسل يعرف المفتاح فلن تتطابق القيمتان.

يُستخدم HMAC في كل مكان: تواقيع الـwebhooks (GitHub وStripe وSlack)، وطلبات API الموقّعة، ورموز JWT بخوارزمية HS256، وتوقيع ملفات تعريف الارتباط، وكلمات المرور لمرة واحدة. تحسب هذه الأداة HMAC-MD5 وHMAC-SHA1 وHMAC-SHA256 وHMAC-SHA384 وHMAC-SHA512 معًا لتقارن بما يستخدمه نظامك.

طريقة الاستخدام

  1. اكتب المفتاح السري. غيّر صيغة المفتاح إذا كان المفتاح بايتات سداسية عشرية أو Base64 بدلًا من نص عادي.
  2. الصق الرسالة أو انقر مثال.
  3. تتحدث جميع قيم HMAC أثناء الكتابة. اختر مخرجات سداسي عشري أو Base64 وانسخ القيمة المطلوبة.

تُرمَّز الرسالة بصيغة UTF-8 كما كُتبت تمامًا، بما في ذلك المسافات والأسطر الجديدة.

مثال

مع المفتاح key والرسالة The quick brown fox jumps over the lazy dog تكون قيمة HMAC-SHA256 هي f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8. يمكنك التحقق منها في سطر الأوامر:

echo -n "The quick brown fox jumps over the lazy dog" | openssl dgst -sha256 -hmac "key"

انتبه إلى -n: من دونه يضيف echo سطرًا جديدًا فيتغيّر HMAC.

التحقق من الـwebhooks

للتحقق من webhook، خذ نص الطلب الخام قبل تحليل JSON، وكوّن السلسلة التي توثّقها الخدمة (غالبًا timestamp.body)، واحسب HMAC بسر التوقيع لديك، ثم قارنه بترويسة التوقيع. في شيفرتك، قارن التواقيع بدالة ثابتة الزمن لتجنّب هجمات التوقيت.

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

› ما الفرق بين التجزئة وHMAC؟

يستطيع أي شخص حساب تجزئة عادية مثل SHA-256. أما HMAC فيمزج مفتاحًا سريًا مع التجزئة، فلا يستطيع إنشاء القيمة أو التحقق منها إلا من يعرف المفتاح. إنه رمز مصادقة للرسالة وليس مجرد مجموع تحقق.

› أي خوارزمية HMAC أستخدم؟

الخيار المعتاد هو HMAC-SHA256، وهو ما تتوقعه معظم واجهات API والـwebhooks. ويصلح HMAC-SHA512 أيضًا. لا يزال HMAC-MD5 وHMAC-SHA1 يُعدّان آمنين كرمز مصادقة، لكن استخدمهما فقط عندما يتطلبهما نظام قديم.

› لماذا لا يطابق HMAC الخاص بي قيمة الخادم؟

تحقق من البايتات الدقيقة للرسالة (سطر جديد في النهاية أو مسافات JSON مختلفة تغيّر كل شيء)، ومن صيغة المفتاح (نص أو سداسي عشري أو Base64)، ومن ترميز المخرجات. غالبًا ما توقّع خدمات الـwebhook سلسلة مكوّنة من طابع زمني ونص الطلب الخام.

› هل يُحفظ مفتاحي السري أو يُرسل إلى أي مكان؟

لا. يُحسب HMAC في متصفحك. يبقى المفتاح في ذاكرة هذه الصفحة فقط: لا يُحفظ، ولا يُكتب في شريط العنوان، ولا يُضمَّن في روابط المشاركة.