HMAC-SHA1 وSHA-256 وSHA-384 وSHA-512 لنص أو ملف، مع التحقق من التوقيعات
يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان.يثبت HMAC أن الرسالة جاءت من شخص يملك السر المشترك، وبهذه الطريقة يُتحقق من webhook. الخوارزميات المدعومة هي SHA-1 وSHA-256 وSHA-384 وSHA-512، على نص أو على ملف حتى 200 MB. لا يغادر السر متصفحك أبدًا، وهذا مهم لمفتاح توقيع.
تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي
اختر SHA-1 أو SHA-256 أو SHA-384 أو SHA-512 تحت الخوارزمية.
أدخل المفتاح السري وحدد هل هو مكتوب كنص أو Hex أو Base64.
الصق الرسالة تحت نص، أو انتقل إلى ملف واضغط اختيار ملف.
انسخ النتيجة بصيغة Hex أو Base64 أو Base64URL بأيقونة النسخ؛ ويضغط Ctrl+Enter لنسخ قيمة hex.
يحسب مولّد HMAC هذا تجزئة بمفتاح لنص أو ملف باستخدام SHA-1 أو SHA-256 أو SHA-384 أو SHA-512، ويعرض النتيجة بصيغة hex وBase64 وBase64 الآمنة لعناوين URL أثناء الكتابة. كما يتحقق أيضًا: الصق التوقيع الذي تتوقعه وسيخبرك هل يطابق.
HMAC هو الطريقة التي يثبت بها نظامان أن الرسالة جاءت من شخص يملك سرًا مشتركًا وأنها لم تتغير في الطريق. يلجأ إليه المطورون عندما يفشل التحقق من webhook لمزوّد دفع ويحتاجون إلى معرفة هل الخطأ في السر أم في المحتوى أم في الترويسة، وعند كتابة دالة توقيع ومقارنتها بنتيجة معروفة، أو عندما تعرض وثائق API توقيعًا نموذجيًا يجب إعادة إنتاجه.
يمكن كتابة المفتاح كنص أو hex أو Base64، لأن المزوّدين ينشرون الأسرار بالصيغ الثلاث. ويمكن أن يكون التوقيع المتوقع بصيغة hex أو Base64، وأن يحتفظ ببادئة ترويسته، مثل sha256= من GitHub أو صيغة t=,v1= من Stripe. تجري المقارنة في زمن ثابت، كما ينبغي أن يفعل خادمك أيضًا.
يحدث كل شيء في متصفحك عبر Web Crypto API. لا يُرفع المفتاح ولا الرسالة ولا يُسجّلان ولا يُحفظان أبدًا، ولا حتى في هذا المتصفح؛ لا يُتذكّر إلا الخوارزمية وصيغة المفتاح اللتان اخترتهما. يمكن توقيع ملفات حتى 200 MB، لأن الملف كله يجب أن يكون في الذاكرة دفعة واحدة.
عندما يفشل التحقق من webhook، يكون السبب المعتاد هو المحتوى: يغطي التوقيع البايتات الخام بالضبط، ومحتوى JSON الذي أعاد إطار عمل تسلسله لن يطابق. أدوات ذات صلة: JWT Decoder وBase64 Encoder وBcrypt Hash and Verify.
اختر SHA-256، واكتب المفتاح السري أو الصقه، ثم اكتب الرسالة أو اختر ملفًا. يظهر التوقيع فورًا بصيغة hex وBase64؛ اضغط نسخ بجانب الصيغة التي يتوقعها API لديك. إذا كان مفتاحك بصيغة hex أو Base64 بدلًا من نص، فغيّر صيغة المفتاح أولًا، لأن الأحرف نفسها تُفك إلى بايتات مختلفة.
لا. يُحسب HMAC في متصفحك باستخدام Web Crypto API، ولا يغادر المفتاح ولا الرسالة الصفحة أبدًا. لا يُسجّل أي شيء تكتبه ولا يُحفظ، ولا حتى في التخزين المحلي. لا يُتذكّر على هذا الجهاز للمرة القادمة إلا الخوارزمية وصيغة المفتاح اللتان اخترتهما.
غالبًا لا يكون المحتوى مطابقًا بايتًا ببايت لما وقّعه المرسل: حلّل إطار عمل JSON وأعاد تسلسله، أو غيّر نهايات الأسطر، أو حذف المسافات. وقّع المحتوى الخام. ومن الأسباب الأخرى استخدام السر الخطأ (مفاتيح الاختبار والإنتاج مختلفة)، أو معاملة سر بصيغة hex كنص، أو مقارنة hex بتوقيع بصيغة Base64.
يمكن لأي شخص حساب التجزئة العادية، لذا فهي لا تثبت شيئًا عمّن أنشأها. أما HMAC فيمزج مفتاحًا سريًا، فلا يستطيع إنتاج القيمة الصحيحة إلا من يملك المفتاح. وهو مصمم أيضًا لمقاومة هجمات تمديد الطول التي تكسر الطريقة الساذجة القائمة على تجزئة المفتاح متبوعًا بالرسالة.
تتوقف مقارنة السلاسل العادية عند أول حرف مختلف، فيكشف الوقت الذي تستغرقه مقدار ما كان صحيحًا من توقيع مُخمَّن. وبقياس ذلك عبر طلبات كثيرة يستطيع المهاجم بناء توقيع صالح بايتًا بعد بايت. تقارن هذه الأداة كل البايتات في كل مرة، وينبغي أن يفعل كود خادمك ذلك أيضًا.
رسائل نصية بأي طول عملي وملفات حتى 200 MB، لأن Web Crypto يحتاج إلى الرسالة كاملة في الذاكرة. الخوارزميات المدعومة هي SHA-1 وSHA-256 وSHA-384 وSHA-512؛ أما MD5 فغير متوفر في Web Crypto ولا ينبغي استخدامه في التوقيعات الجديدة على أي حال. يجب ألا يقل المفتاح عن بايت واحد.
هل ما زلت عالقًا؟ اسأل عن مولّد HMAC ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.