Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هو المجموع الاختباري (Checksum)؟

المجموع الاختباري (checksum) قيمة قصيرة تُحسب من كتلة بيانات، مثل ملف أو حزمة شبكة، وتُخزَّن أو تُرسل معها. إعادة حسابها لاحقًا ومقارنة القيمتين تُظهر ما إذا كانت البيانات قد تغيّرت بسبب تلف أو خطأ في النقل.

بقلم Kevin Spektor, شريك مؤسس ورئيس قسم التكنولوجيا (CTO)

آخر تحديث 24 سبتمبر 2026

المجموع الاختباريالمرسلالواصلالنتيجة
مجموع البايتات (باقي القسمة على 256)9A9Aتطابق
CRC-32A0E3CD31A0E3CD31تطابق

اقلب بتًا واحدًا وسيتغير المجموعان الاختباريان كلاهما. بدّل حرفين وستبقى البايتات كلها موجودة، فيبقى مجموعها كما هو: وحده CRC-32، الذي يعتمد على الترتيب، يلاحظ الفرق.

تنشر توزيعات لينكس مثل Ubuntu و Debian ملفًا اسمه SHA256SUMS بجوار صور التثبيت الخاصة بها. كل سطر فيه يحمل نصًا من 64 حرفًا واسم ملف. بعد انتهاء التنزيل، تشغّل أمرًا واحدًا على الملف الذي استلمته. إن طبع النص نفسه، فقد وصلت كل مليارات البايتات فيه سليمة. وإن انقلب بت واحد في الطريق، يخرج النص مختلفًا تمامًا.

ذلك النص هو المجموع الاختباري (checksum): ملخص صغير يتغيّر عندما تتغيّر البيانات.

كيف يعمل المجموع الاختباري خطوة بخطوة

  1. يشغّل المرسِل خوارزمية مجموع اختباري على البيانات، بايتًا بعد بايت، ويحصل على نتيجة قصيرة.
  2. تنتقل النتيجة أو تُخزَّن مع البيانات: في ترويسة حزمة الشبكة، أو داخل ملف ZIP بجوار كل ملف مضغوط، أو في صفحة التنزيل.
  3. يشغّل المستقبِل الخوارزمية نفسها على البيانات التي وصلته فعلًا.
  4. تُقارن النتيجتان. إن تساوتا، فالبيانات على الأرجح لم تتغيّر. وإن اختلفتا، فقد تلفت البيانات، ويرفضها المستقبِل أو يطلبها مرة أخرى أو يعرض خطأ checksum.

المجموع الاختباري يكشف التلف فقط، ولا يستطيع أن يحدد أي بايت تغيّر ولا أن يصلحه. الإصلاح يحتاج إلى رمز لتصحيح الأخطاء، مثل رموز Reed-Solomon في الأقراص المدمجة ورموز QR.

أبسط مجموع اختباري يجمع كل البايتات ويحتفظ بآخر 8 بتات من المجموع. شغّل هذا لترى أين تنجح هذه الفكرة وأين تفشل:

original  sum= 78  crc32=a1628836
flipped   sum= 80  crc32=a597580b
swapped   sum= 78  crc32=59dbf74b

تغيير حرف يغيّر المجموع. أما تبديل موضعي حرفين فلا يغيّره، لأن الجمع لا يهتم بالترتيب، فيوافق مجموع البايتات على دفع 10 بدل 100. يتعامل CRC-32 (فحص التكرار الدوري، cyclic redundancy check) مع البيانات على أنها رقم ثنائي واحد طويل ويقسمها على كثيرة حدود ثابتة من 33 بتًا، وباقي القسمة ذو الـ 32 بتًا يعتمد على موضع كل بت، فيُكشف التبديل. العرض التوضيحي أعلاه يتيح لك تجربة ذلك على نصك الخاص. ويكشف CRC-32 كل دفعة أخطاء متتالية يصل طولها إلى 32 بتًا.

أشهر خوارزميات المجموع الاختباري

الخوارزميةالحجمأين تصادفها
بت التماثل (parity bit)1 بتالاتصالات التسلسلية، وذاكرة التماثل
رقم Luhn للتحققرقم واحدأرقام بطاقات الائتمان، وأرقام IMEI
Internet checksum16 بتًاترويسات IPv4 و TCP و UDP
Adler-3232 بتًاصيغة الضغط zlib
CRC-3232 بتًاZIP و gzip و PNG وإطارات Ethernet
MD5128 بتًاصفحات التنزيل القديمة، وأدوات البحث عن الملفات المكررة
SHA-256256 بتًاتنزيلات البرامج، وصور لينكس، وبيتكوين

الخمس الأولى تكشف الحوادث العرضية لا المهاجمين. فمن يعدّل ملفًا يستطيع ضبط بضعة بايتات حتى يتطابق CRC-32 الخاص به مرة أخرى. أما MD5 و SHA-256 فدوال hash تشفيرية، صُممت بحيث يكون العثور على مُدخلين لهما المُخرج نفسه غير عملي. وقد كُسرت MD5 منذ ذلك الحين (نُشرت تصادمات لها عام 2004)، وكذلك SHA-1 (عام 2017)، لذا تستخدم التنزيلات الحساسة أمنيًا SHA-256 أو ما هو أقوى. لكن MD5 لا تزال تكشف التلف العرضي بكفاءة تامة.

كيف تتحقق من المجموع الاختباري

على حاسوبك، لكل نظام تشغيل أمر مدمج:

# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso

قارن المخرجات بالقيمة الموجودة في صفحة التنزيل الرسمية، ولا يهم إن كانت الحروف كبيرة أو صغيرة. وفي بايثون تقوم hashlib بالفحص نفسه، فتقرأ الملف على دفعات حتى لا يلزم أن يتسع ملف حجمه 6 GB في الذاكرة:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK

غيّر hello world إلى hello World وشغّل الكود مرة أخرى: يتغيّر كل حرف في المجموع الاختباري، ويقول السطر الأخير Checksum mismatch.

ما هو خطأ checksum؟

خطأ checksum يعني أن الفحص فشل: القيمة المحسوبة من البيانات التي لديك لا تطابق القيمة المخزنة أو المرسلة معها. فإما أن البيانات تغيّرت، وإما أن المجموع الاختباري المخزّن نفسه تلف. وتعتمد الرسالة والحل على مكان ظهوره.

خطأ CMOS checksum أو BIOS checksum عند التشغيل

يحتفظ البرنامج الثابت في الحاسوب الشخصي (BIOS أو UEFI) بإعداداته، مثل ترتيب الإقلاع والساعة، في ذاكرة صغيرة تبقيها حية بطارية دائرية، عادةً من نوع CR2032، حين يكون الحاسوب مفصولًا عن الكهرباء. ويُخزَّن بجوار هذه الإعدادات مجموع اختباري لها. في كل تشغيل يعيد البرنامج الثابت حسابه، وإن اختلفت القيمتان يعرض رسالة مثل CMOS Checksum Error - Defaults Loaded ويعود إلى إعدادات المصنع.

السبب المعتاد بطارية ضعيفة أو فارغة، خاصة إذا كانت الساعة تُعاد ضبطها أيضًا. وانقطاع الكهرباء أثناء حفظ الإعدادات، أو مسح CMOS بواسطة jumper، له الأثر نفسه. لإصلاحه:

  1. افتح شاشة الإعدادات (عادةً بالضغط على Delete أو F2 أثناء تشغيل الحاسوب)، واضبط التاريخ والوقت وأي إعدادات غيّرتها، ثم احفظ واخرج (غالبًا بـ F10). إن لم تعد الرسالة، فقد كان حدثًا لمرة واحدة.
  2. إن عادت بعد كل تشغيل من حالة الإطفاء الكامل، فأطفئ الحاسوب وافصله عن الكهرباء واستبدل بطارية CR2032.
  3. إن ذكرت الرسالة البرنامج الثابت نفسه، مثل BIOS ROM checksum error أو Main BIOS checksum error، فصورة البرنامج الثابت تالفة. اللوحات الأم التي فيها شريحة BIOS احتياطية تستعيدها تلقائيًا، وفي غيرها استخدم ميزة استعادة BIOS في اللوحة أو أعد تثبيت البرنامج الثابت من موقع الشركة المصنعة، دون قطع الكهرباء أثناء التحديث.

عدم تطابق checksum بعد التنزيل

قيمة SHA-256 لملفك لا تطابق القيمة الموجودة في صفحة التنزيل. قد يكون الملف ناقصًا أو تالفًا (اتصال انقطع، أو قرص ممتلئ)، وقد تكون تقارنه بالمجموع الاختباري لملف آخر (إصدار آخر أو معمارية معالج أخرى)، وقد تكون تقارن بين خوارزميتين مختلفتين: قيمة MD5 طولها 32 حرفًا ست عشريًا، وقيمة SHA-256 طولها 64. ونادرًا ما يكون الملف قد عُبث به.

تحقق من الخوارزمية واسم الملف، ثم نزّل الملف مرة أخرى من الموقع الرسمي. إن ظلت نسخة جديدة من المصدر الرسمي غير مطابقة، فلا تشغّلها. مديرو الحزم يقومون بهذا الفحص نيابة عنك: يتوقف pip برسالة THESE PACKAGES DO NOT MATCH THE HASHES حين تختلف حزمة منزّلة عن قيمة الـ hash المثبّتة لها.

خطأ checksum في أرشيف ZIP أو RAR أو 7z

تخزّن صيغ الأرشيف قيمة CRC-32 للمحتوى الأصلي لكل ملف. عند الاستخراج تعيد الأداة حسابها، فيُبلغ WinRAR عن عدم التطابق برسالة Checksum error، ويُبلغ 7-Zip برسالة CRC Failed. وفي الأرشيف المشفّر تُنتج كلمة المرور الخاطئة الرسالة نفسها، لأن فك التشفير بكلمة مرور خاطئة يُنتج بيانات عشوائية. نزّل الأرشيف مرة أخرى، وتأكد من وجود كل أجزاء الأرشيف المقسّم (.part1.rar و.part2.rar) ومن أنها من الرفع نفسه، وأعد كتابة كلمة المرور. يعمل أمر Repair archive في WinRAR على أفضل وجه مع الأرشيفات المُنشأة بسجل استعادة (recovery record)، وخيار "Keep broken files" يحفظ ما استُخرج بشكل صحيح.

أخطاء checksum في الألعاب وأدوات الشبكات

تقارن الألعاب المجاميع الاختبارية لملفاتها، فالتحديث الجزئي أو الملف المعدّل يفشل في الفحص. في Steam، يعيد خيار "Verify integrity of game files" تنزيل كل ملف لا يطابق مجموعه الاختباري. وفي Wireshark، تحذيرات checksum على الحزم التي يرسلها حاسوبك أنت ليست عادةً أخطاء حقيقية: فبطاقة الشبكة تملأ المجموع الاختباري بعد أن يكون Wireshark قد التقط الحزمة بالفعل.

مفاهيم خاطئة شائعة

  • "تطابق المجموع الاختباري يثبت أن الملف آمن." إنه يثبت أن الملف يطابق القيمة المنشورة. إن تحكّم مهاجم في الموقع، فيمكنه تغيير الاثنين، ولهذا توقّع المشاريع أيضًا ملفات المجاميع الاختبارية بمفتاح.
  • "المجموع الاختباري يستطيع إصلاح ملف تالف." إنه يكشف التلف فقط. والحل هو الحصول على نسخة سليمة.
  • "الـ checksum والـ hash شيئان مختلفان." الـ checksum يصف المهمة، ودالة الـ hash مثل SHA-256 أداة من الأدوات التي يمكنها القيام بها.

إلى أين بعد ذلك

احسب قيم MD5 و SHA-1 و SHA-256 لأي نص في مولّد الـ hash. تعمل المجاميع الاختبارية على البيانات الخام، لذا تشرح صفحتا ما هو البايت وما هو البت ما الذي يُجمع فعلًا. وتستخدم قاعدة البيانات مجاميع اختبارية للصفحات لكشف تلف القرص، ويُظهر التصور المرئي لجدول التجزئة استخدامًا آخر لقيمة قصيرة تُحسب من البيانات.

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

هل SHA-256 مجموع اختباري (checksum)؟
نعم، عندما يُستخدم للتحقق من البيانات. SHA-256 دالة hash تشفيرية، والقيمة ذات الـ 64 حرفًا التي تُنتجها لملف ما تسمى عادةً SHA-256 checksum لذلك الملف. إنها أبطأ من CRC-32، لكنها تحمي أيضًا من التغييرات المتعمدة، لأنه لا أحد يستطيع عمليًا بناء ملف مختلف له قيمة SHA-256 نفسها.
كيف أصلح خطأ checksum؟
يعتمد ذلك على مكان ظهوره. عند الإقلاع، افتح إعدادات BIOS، وتحقق من التاريخ والإعدادات، واحفظ واخرج، واستبدل بطارية CMOS الدائرية إن عاد الخطأ. وبعد التنزيل أو داخل ملف مضغوط، نزّل الملف مرة أخرى من المصدر الرسمي، وتأكد من وجود كل أجزاء الأرشيف المقسّم ومن صحة كلمة المرور.
ما الذي يسبب خطأ checksum؟
تغيّرت البيانات بين لحظة حساب المجموع الاختباري ولحظة فحصه. الأسباب الشائعة هي تنزيل انقطع، أو قرص أو ذاكرة USB على وشك التعطل، أو بطارية CMOS ضعيفة، أو انقطاع الكهرباء أثناء كتابة الإعدادات أو البرنامج الثابت (firmware)، أو كلمة مرور خاطئة لأرشيف مشفّر.
لماذا نحتاج إلى المجموع الاختباري؟
وسائط التخزين والشبكات ليست مثالية. تنقلب البتات بسبب الضجيج الكهربائي، أو التداخل اللاسلكي، أو تآكل ذاكرة الفلاش، أو أعطال الأقراص، ودون فحص ستُستخدم البيانات التالفة بصمت. المجموع الاختباري طريقة رخيصة لملاحظة التلف حتى تُرسل البيانات مرة أخرى أو تُرفض.
كيف أُنشئ مجموعًا اختباريًا لملف؟
شغّل خوارزمية مجموع اختباري على البيانات. للملفات استخدم sha256sum file على لينكس، أو shasum -a 256 file على macOS، أو Get-FileHash file في PowerShell على ويندوز. وفي بايثون يعطي hashlib.sha256(data).hexdigest() مجموعًا اختباريًا من نوع SHA-256، ويعطي zlib.crc32(data) مجموعًا من نوع CRC-32.
Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن