طريقة الاستخدام
- اكتب النص أو الصقه في النص.
- اترك المفتاح (اختياري) فارغاً للبصمات العادية، أو اكتب مفتاحاً للحصول على HMAC.
- انسخ بصمة من صفها، أو استخدم تنزيل كملف CSV لحفظ الجدول كاملاً.
- تحقق من الخوارزمية في العمود الأول، وقارنها بالخوارزمية التي يطلبها نظامك أو مستندك.
ما هي التجزئة؟
دالة التجزئة تحوّل أي نص إلى شيفرة بطول ثابت تسمى البصمة. النص نفسه يعطي البصمة نفسها دائماً، والتغيير الصغير يعطي بصمة مختلفة تماماً، ولا يمكن إرجاع البصمة إلى النص. تُكتب البصمات هنا بالنظام السداسي العشري: لـ MD5 32 رقماً، ولـ SHA-1 40، ولـ SHA-256 64، ولـ SHA-384 96، ولـ SHA-512 128 رقماً.
الأرقام السداسية العشرية = البتات ÷ 4
MD5 128 ÷ 4 = 32
SHA-256 256 ÷ 4 = 64
SHA-512 512 ÷ 4 = 128
أي خوارزمية تستخدم؟
MD5 وSHA-1 مكسوران. يمكن إيجاد نصين مختلفين لهما البصمة نفسها، لذلك لا يجوز استخدامهما في التوقيعات أو الشهادات. ما زالا يظهران في الأنظمة القديمة، وفي فحص سريع ضد التلف العرضي لملف منزَّل. أما SHA-256 وSHA-512 فينتميان إلى المعيار الحالي FIPS 180-4، وهما الخيار المعتاد.
لتخزين كلمات المرور استخدم دالة تجزئة مخصصة لها، مثل Argon2 أو bcrypt. ولا تصلح أي بصمة في هذه الصفحة لذلك.
HMAC: بصمة بمفتاح
يجمع HMAC (RFC 2104) مفتاحاً مع دالة تجزئة بطريقة ثابتة. لا يستطيع صنع HMAC نفسه إلا من يعرف المفتاح، لذلك يدل التطابق على أن الرسالة صادرة من صاحب المفتاح ولم تتغير في الطريق. وتحسب الصفحة HMAC بالخوارزميات نفسها التي تحسب بها البصمات العادية.
النص بايتات
- يُجزَّأ النص كبايتات UTF-8 (RFC 3629). تأخذ الأحرف اللاتينية من ASCII بايتاً واحداً، وتأخذ الأحرف العربية بايتين، ويأخذ الرمز التعبيري أربعة بايتات.
- إن اختلف سطر الإنهاء أو الترميز أو وُجدت مسافة واحدة زائدة، اختلفت البصمة، لذلك جزّئ البايتات نفسها التي تجزئها الأداة الأخرى.
مثال محلول: abc وHMAC
بصمات النص abc قيم منشورة: MD5 في RFC 1321، وSHA-1 وSHA-256 وSHA-384 وSHA-512 في FIPS 180-4.
مع المفتاح Jefe والنص what do ya want for nothing?، تكون HMAC-SHA-256 هي 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843، وهي قيمة الاختبار في RFC 4231، الحالة 2.
| الخوارزمية | بصمة abc |
|---|---|
| MD5 | 900150983cd24fb0d6963f7d28e17f72 |
| SHA-1 | a9993e364706816aba3e25717850c26c9cd0d89d |
| SHA-256 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
| SHA-384 | cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 |
| SHA-512 | ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f |
الأسئلة الشائعة
هل MD5 آمن لكلمات المرور؟
لا. فـ MD5 سريع ومكسور، لذلك يسهل كسر قائمة مسرَّبة من بصمات كلمات المرور. خزّن كلمات المرور بدالة تجزئة مخصصة لها، مثل Argon2 أو bcrypt.
هل SHA-256 هو التشفير نفسه؟
لا. التجزئة اتجاه واحد: لا يمكن إرجاعها إلى النص، ولا تستخدم مفتاحاً. أما التشفير فيُعكس بالمفتاح الصحيح. استخدم التجزئة للتحقق من سلامة البيانات، واستخدم HMAC للتحقق من أن الرسالة صدرت ممن يعرف المفتاح.
ما الفرق بين التجزئة وHMAC؟
تعتمد التجزئة على النص وحده، فيستطيع أي شخص حسابها. أما HMAC فيحتاج المفتاح السري أيضاً، فلا يصنعه أو يتحقق منه إلا من يملك المفتاح. وتوقيعات Webhook وواجهات API غالباً تكون HMAC-SHA-256.
لماذا تختلف بصماتي عن أداة أخرى؟
يجب أن تكون البايتات متطابقة. فاختلاف سطر الإنهاء أو الترميز، مثل Windows-1254، أو وجود مسافة زائدة، يغيّر كل البصمات. جزّئ البايتات نفسها التي تجزئها الأداة الأخرى.
هل يُرسل نصي إلى أي مكان؟
لا. تُحسب البصمات في متصفحك، ولا يُرفع النص ولا يُخزَّن.
هل أستطيع فحص ملف بهذه الأداة؟
تجزّئ هذه الصفحة النصوص فقط. أما للملفات فاستخدم أداة حساب مجموع التحقق في نظام التشغيل، أو المجموع الذي ينشره موقع التنزيل.
المصادر
- RFC 1321 (باللغة الإنجليزية): The MD5 Message-Digest Algorithm (IETF)
- NIST FIPS 180-4 (باللغة الإنجليزية): Secure Hash Standard (SHA-1 and the SHA-2 family)
- RFC 2104 (باللغة الإنجليزية): HMAC, Keyed-Hashing for Message Authentication (IETF)
- RFC 4231 (باللغة الإنجليزية): Test vectors for HMAC-SHA-224, -256, -384 and -512 (IETF)
آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.