بصمة النص: ما الذي يثبته تطابق SHA وما الذي لا يثبته؟
عندما ترسل نص إعدادات أو تنقل محتوى بين نظامين، قد تريد التأكد من عدم تغيره. البصمة تختصر المقارنة، لكن فائدتها تتوقف على مقارنة الشيء نفسه وبمرجع موثوق.
الخوارزمية جزء من المقارنة
تنتج دالة التجزئة قيمة بطول ثابت من البيانات. اختر الخوارزمية نفسها على الطرفين؛ بصمة SHA-256 ليست قيمة يمكنك مقارنتها مباشرة ببصمة SHA-512.
تعرض SHA-256 عادة في 64 خانة ست عشرية. طول النص لا يزيد طول هذه البصمة، كما أن بصمة طويلة ليست نسخة مضغوطة تستطيع استخراج الأصل منها.
المراجع: MDN — SubtleCrypto.digest and fixed-length cryptographic digests
المحتوى المتشابه قد يختلف في البايتات
مسافة أخيرة أو سطر جديد أو اختلاف ترميز قد يغيّر البصمة مع بقاء النص متشابهًا للعين. لا تنظف النص قبل المقارنة إذا كنت تريد فحص ما نُقل فعلًا.
حاسبة ToolRoof تحسب النص كما أُدخل بترميز UTF-8 دون قص المسافات أو توحيد Unicode. وهي هنا حاسبة نص؛ لصق اسم ملف لا يحسب محتوى ذلك الملف.
المرجع يجب أن يأتي من جهة موثوقة
تطابق البصمة مع مرجع موثوق يقدم دليلًا عمليًا على سلامة المحتوى المقارن. لكنه لا يثبت وحده اسم كاتبه أو خلوه من محتوى ضار.
إذا استطاع طرف تغيير النص والبصمة المرجعية معًا، فقد تتطابق النسختان رغم التغيير. تحقق من مصدر المرجع، ولا تستخدم SHA العامة وحدها بديلًا عن توقيع أو نظام تخزين كلمات مرور مناسب.
المراجع: MDN — SubtleCrypto.digest and fixed-length cryptographic digests
مثال: نهاية السطر جزء من النص
الكلمة Roof دون سطر جديد تساوي 4 بايتات UTF-8، وبصمتها SHA-256 تبدأ بـc2f6a4d9. إضافة محرف نهاية سطر LF يجعل المدخل 5 بايتات وتبدأ بصمته بـ1e5a7f27. النص الظاهر قريب جدًا، لكن البيانات ليست نفسها.
البدايات المختصرة هنا للشرح فقط؛ المقارنة الفعلية تستخدم البصمة الكاملة. إذا فشلت المقارنة، افحص نهاية السطر والمسافات والخوارزمية قبل استنتاج أن شخصًا عبث بالمحتوى.