تعمل خاصية “الهاش” كخوارزمية حسابية، والتي تقوم بتحويل أي مجموعة بيانات إلى سلسلة من العناصر الجديدة بطول محدد. وبغض النظر عن طول البيانات المدخلة، فإن نفس نوع الهاش سينتج دائماً قيمة هاش بنفس الطول.
لذلك، ووفق عامل إصدار الهاش SHA1، فإن الهاش لاسم بريان هي: 75c450c3f963befb912ee79f0b63e563652780f0
وقد يخطئ أحدهم بكتابة اسمي، فيكتبه “بارين” بدلاً من الكتابة الصحيحة، وبهذه الحالة تكون الهاش كالتالي:
8b9248a4e0b64bbccf82e7723a3734279bf9bbc4
وكما ترى، فإن النتيجتين مختلفتين، رغم أن الاختلاف يعتمد على ترتيب الحروف، وكمثال ثالث، فإذا أدخلت اسمي بدون تكبير الحرف الأول، ستكون النتيجة كما يلي:
760e7dab2836853c63805033e514668301fa9c47
وستلاحظ بأن كل مجموعات الهاش تتكون من ٤٠ عنصراً، وهي نتيجة غير مفاجئة، نظراً لأن طول المدخلات في كل حالة هو ٥ عناصر فقط. ولكن الأمر المفاجئ هنا هو أن إدخال كل كلمة من هذه القصة إلى مولد الهاش يعود بالنتيجة التالية:
db8471259c92193d6072c51ce61dacfdda0ac3d7
وهو ما يقارب 1,637 عنصراً (بما يتضمن المسافات). ويمكنك أن تقوم بعمل هاش لمجموعة أعمال ويليام شكسبير وتنتهي بنتيجة مكونة من ٤٠ عنصراً، وعدا عن ذلك، فيستحيل أن يؤدي مدخلان مختلفان إلى نفس النتيجة.
وفيما يلي صورة تلخص الشرح لمن يفضلون التعلم البصري:
لماذا يستخدم الهاش؟
سؤال رائع، والإجابة بأن الهاش يستخدم لأغراض عديدة. وأكبر صيغة من الهاش تتعلق بكلمات المرور، فعلى سبيل المثال إذا نسيت كلمة المرور أثناء استخدامك لإحدى الخدمات على الإنترنت، فعليك تنفيذ عملية استعادة كلمة المرور. وعندما تستعيد كلمة المرور، فإنك لا تتلقى كلمة المرور كنص فارغ بالمقابل، وذلك لأن الخدمات على الإنترنت لا تقوم بتخزين كلمة المرور الخاص بك كنص فارغ، وإنما تقوم بتخزين قيمة هاش لكلمة المرور، وفي الواقع فإن الخدمة على الإنترنت لا تملك أدنى فكرة عن كلمة المرور الحقيقية الخاصة بك.
وللتوضيح، إذا تلقيت كلمة المرور الخاصة بك كنص فارغ، فهذا يعني أن الخدمة لا تقوم بتخزين القيمة بصيغة هاش، وهو أمر مشين بحقهم.
ويمكنك اختبار هذا الأمر بنفسك، فإذا أردت إنشاء قيمة هاش لكلمة مرور ضعيفة مثل “كلمة مرور” أو “٦٥٤٣٢١” ومن ثم أدخلتها لتحويلها إلى قيمة هاش، فعلى الأغلب بأن مولد الهاش سيتعرف على قيمة الهاش لإحدى كلمات المرور هذه.
وبحسب تقرير من TechCrunch آخر الشهر الماضي، فقد قامت خدمة تخزين كلاود الشائعة، Dropbox، بمنع أحد مستخدميها من مشاركة محتوى محمي من قبل DMCA. وقد أرسل هذا المستخدم تغريدة بشأن منعه من مشاركة المحتوى، وانفجر تويتر لبعض الوقت بالأشخاص الذين يصرخون ويتذمرون حول تطفل Dropbox وفق ما نصت عليه سياسة الخصوصية.
وبالطبع، فإن Dropbox لم يقم بالتطفل على أي محتوى كما أشيع، وكما نصت عليه مقالة TechCrunch، فإن ما حصل على الأغلب هو قيام صاحب الحقوق بسحب ملفه وتمريره عبر خاصية الهاش، ومن ثم تم أخذ قيمة الهاش وإضافة هذه السلسلة المكونة من ٤٠ عنصراً إلى قائمة سوداء للهاش للمواد المحمية بالحقوق. وعندما حاول المستخدم مشاركة هذا المحتوى المحمي، قام Dropbox تلقائياً بفحص القائمة السوداء وبالتالي منع مشاركة هذا المحتوى.
لذا، يمكنك استخدام خاصية هاش لكلمات المرور وملفات الميديا، إنما ما الأغراض الأخرى التي قد يخدم فيها الهاش؟ ومرة أخرى، فعلينا القول بأن الهاش يستخدم لأغراض عديدة ولا يمكن حصرها. وعلى كل حال هناك تطبيق خاص بالهاش محبب لنا في كاسبرسكي لاب، وهو استخدام الهاش لتمييز البرامج الخبيثة من قبل شركات مقاومة الفيروسات.
وكما تم إنشاء قوائم سوداء للملفات المحمية، فقد تم إنشاء قوائم سوداء للبرامج الخبيثة، وتتضمن هذه القوائم قيم الهاش بالبرامج الخبيثة. ومن جهة أخرى، فإذا وجد المستخدم ملفاً مشبوهاً، فيستطيع المستخدم إدخال قيمة الهاش لإحدى قواعد البيانات، والتي ستقوم بإبلاغ المستخدم إذا كان الملف يحتوي برامج خبيثة أم لا. ومن جهة أخرى، فإن إحدى وسائل محرك مقاومة الفيروسات للتعرف على البرامج الخبيثة وحجبها هي مقارنة هاش الملفات برموز البرامج الخبيثة.
كما تقوم خاصية الهاش بضمان دقة الرسالة، بحيث تتأكد من دقة الملف قبل وبعد عملية نقل البيانات، وإذا كانت البيانات متطابقة قبل وبعد إنشاء الهاش، فعندها تكون عملية النقل صحيحة.