مولد HMAC والتحقق
قم بإنشاء رموز مصادقة رسائل HMAC والتحقق منها باستخدام SHA-256 أو SHA-384 أو SHA-512 أو SHA-1 باستخدام مفتاح سري، بالكامل في متصفحك.
النتيجة
إن HMAC (رمز مصادقة الرسالة المستند إلى التجزئة) عبارة عن بنية تشفير ذات مفاتيح تجمع بين المفتاح السري والرسالة من خلال وظيفة التجزئة مثل SHA-256. على عكس التجزئة البسيطة، التي يمكن لأي شخص إعادة حسابها من الرسالة وحدها، لا يمكن إعادة إنتاج HMAC إلا من قبل شخص يحمل نفس المفتاح السري - وهذا ما يجعله رمز مصادقة وليس مجرد مجموع اختباري.
هذا هو الاختلاف الأساسي عن الملخص البسيط: تقوم أداة Hash Generator الخاصة بنا بحساب التجزئات غير المفتاحية مثل MD5 أو SHA-256، والتي تعتبر رائعة لاكتشاف الفساد العرضي ولكنها لا تثبت شيئًا حول من أنتج البيانات، حيث يمكن لأي شخص إنشاء نفس التجزئة. يثبت HMAC كلا من النزاهة (لم يتم تغيير الرسالة) والأصالة (يعرف الموقع السر المشترك)، ولهذا السبب فإن HMAC هو لبنة البناء القياسية وراء توقيع طلب واجهة برمجة التطبيقات (API)، وخوارزميات JWT's HS256/HS384/HS512، ومصادقة سجل TLS.
حالة الاستخدام الأكثر شيوعًا في العالم الحقيقي هي التحقق من توقيعات webhook. تقوم خدمات مثل Stripe وGitHub وShopify بالتوقيع على كل حمولة خطاف ويب باستخدام HMAC-SHA256 باستخدام السر الذي تقوم بتكوينه، وإرسال التوقيع الناتج في رأس الطلب. من المتوقع أن يقوم الخادم الخاص بك بإعادة حساب HMAC على الحمولة الأولية بنفس السر ومقارنتها بقيمة الرأس - إذا كانت متطابقة، فستعرف أن الطلب جاء بالفعل من تلك الخدمة ولم يتم العبث به أثناء النقل. يقوم وضع التحقق الخاص بهذه الأداة بإعادة إنتاج هذا الفحص بالضبط: الصق الحمولة والسر المشترك والتوقيع المستلم، واحصل على تطابق فوري أو عدم تطابق.
يتم تشغيل كل شيء محليًا من خلال Web Crypto API الأصلي للمتصفح (crypto.subtle.importKey وcrypto.subtle.sign)، وبالتالي فإن المفتاح السري ونص الرسالة والتوقيع الناتج لا يغادر جهازك أبدًا - لا يتم تحميل أي شيء إلى أي خادم، وهو أمر مهم نظرًا لأن أسرار HMAC هي بالضبط نوع القيمة التي لا يجب لصقها أبدًا في أداة عشوائية عبر الإنترنت يمكنها تسجيلها.