التجزئة/التشفير

HMAC Generator

حساب HMAC (رمز مصادقة الرسائل المعتمد على الهاش) لنص أو ملف باستخدام مفتاح سري — بثماني خوارزميات دفعة واحدة: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.

HMAC (Hash-based Message Authentication Code) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.

How to use it

Common uses

Things to keep in mind

HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.

A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.

مقالة عن هذه الأداة: HMAC: كيف تختلف التجزئة بمفتاح عن التجزئة العادية

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

ما الفرق بين HMAC والتجزئة العادية (hash)؟

التجزئة العادية تنتج بصمة للبيانات دون مفتاح، بينما HMAC يستخدم مفتاحًا سريًا مشتركًا فيوفر مصادقة تثبت أن الرسالة أُنشئت من طرف يملك المفتاح، وليس مجرد بصمة عامة.

هل يمكن حساب HMAC بدون إدخال مفتاح سري؟

لا، المفتاح السري إلزامي لخوارزمية HMAC؛ بدونه لا معنى للعملية لأن أمانها يعتمد بالكامل على سرية هذا المفتاح.

كيف أختار الخوارزمية وطول المفتاح المناسبين؟

يُفضَّل استخدام HMAC-SHA-256 أو أعلى للاستخدامات الحديثة، مع مفتاح عشوائي بطول لا يقل عن طول ناتج التجزئة نفسها لتحقيق أقصى مقاومة ممكنة.

لماذا لا يجوز مقارنة HMAC بعامل المساواة العادي؟

مقارنة السلاسل العادية تتوقف عند أول اختلاف، ويكشف زمن التنفيذ للمهاجم عدد الأحرف الأولى التي خمّنها بشكل صحيح (هجوم توقيت). المطلوب دوال مقارنة بزمن ثابت، مثل hash_equals في PHP.

هل يمكن استخدام نفس المفتاح لعدة أغراض مختلفة؟

لا يُنصح بذلك. إذا استُخدم المفتاح السري نفسه لتوقيع الويب هوك ولغرض آخر، فإن اختراق نظام واحد يعرّض النظام الآخر تلقائيًا للخطر — يُفضَّل توليد مفتاح منفصل لكل غرض.

مقالات: التجزئة/التشفير

Hash Generator: ما الفرق بين MD5 وSHA-1 وSHA-256

لماذا لا تزال MD5 تُستخدم للتحقق من سلامة الملفات، لكن ليس لكلمات المرور.

Checksum Verifier: كيف تتحقق من أن الملف غير تالف

لماذا يؤكد تطابق المجموع الاختباري سلامة الملف، لكن ليس من أنشأه.

Bcrypt: لماذا تُجزَّأ كلمات المرور ببطء لا بسرعة

لماذا يُعدّ SHA-256 السريع خيارًا سيئًا لكلمات المرور، وbcrypt البطيء هو الخيار الصحيح.

UUID: كيف تُولَّد معرّفات لا تتكرر تقريبًا أبدًا

لماذا يمكن توليد UUID v4 بشكل مستقل على ملايين الأجهزة دون خطر التصادم.

مولّد كلمات المرور: ما الذي يجعل كلمة المرور قوية فعلًا

لماذا تكون كلمة مرور طويلة من كلمات القاموس أقوى من كلمة قصيرة برموز وأرقام.

AES: كيف يعمل التشفير المتماثل

لماذا يشفّر نفس المفتاح البيانات ويفكّ تشفيرها في AES، وكيف يختلف ذلك عن التشفير غير المتماثل.

Argon2: لماذا فازت هذه الخوارزمية بمسابقة تجزئة كلمات المرور

كيف تدافع Argon2 بشكل أفضل ضد الهجمات باستخدام بطاقات الرسوميات مقارنة بخوارزميات تجزئة كلمات المرور الأقدم.

Scrypt: لماذا تحتاج الخوارزمية إلى كل هذه الذاكرة

لماذا تتطلب scrypt عمدًا ذاكرة كبيرة لتصعيب الكسر على أجهزة ASIC.

TOTP: كيف تعمل الرموز أحادية الاستخدام في تطبيقات المصادقة

لماذا يعمل رمز Google Authenticator دون إنترنت ويتزامن مع الخادم عبر الوقت فقط.

PBKDF2: أقدم معيار لتمديد المفاتيح

لماذا يتزايد عدد تكرارات PBKDF2 الموصى به كل عام.

X.509: ماذا يوجد داخل شهادة SSL

ما الذي يتحقق منه المتصفح بالضبط في شهادة موقع قبل عرض القفل الأخضر.

PGP: كيف يعمل التشفير بمفتاح عام وخاص

لماذا يمكن مشاركة المفتاح العام لـ PGP بحرية، لكن ليس المفتاح الخاص أبدًا.