متوفر أيضًا بلغات أخرى: English · Español · Português · Français
حاسبة CRC
احسب CRC بأي من الخوارزميات الـ113 في الكتالوج المعياري، واعرف ما الذي يعنيه صيغتك فعلًا بـ CRC-32.
ما CRC؟
فحص التكرار الدوري عدد قصير يُحسب من كتلة بيانات ليعرف المستقبِل هل وصلت سليمة. وهو ليس تجزئة ولا توقيعًا، بل صُمِّم لالتقاط الحوادث التي يحدثها النقل والتخزين — بتات منقلبة، وبايتات ضائعة، وإطار مبتور — وهو رخيص إلى حد أن إيثرنت وzip وPNG وgzip وكثيرًا من نواقل العتاد تحسب واحدًا لكل ما يمر بها.
والمهم أن تدرك أن CRC ليست خوارزمية واحدة، بل عائلة تصفها ستة وسائط: عرض السجل، وكثير الحدود، وقيمة السجل الابتدائية، وهل تُعكس بتات المدخل، وهل تُعكس بتات المخرج، وقيمة تُطبَّق بـ XOR في النهاية. غيّر أيًا منها تحصل على CRC مختلفة وصحيحة بالقدر نفسه. ويسرد الكتالوج المعياري 113 منها مستعملة فعلًا، من عرض ثلاث بتات إلى اثنتين وثمانين.
وهذه الحاسبة تنفّذ الخوارزمية ذات الوسائط وتحمل الـ113 كلها، فتستطيع حساب ما تنص عليه صيغتك فعلًا لا ما صادف أن سمّته مكتبةٌ ما CRC-32.
كيفية الاستخدام
- أعطها مدخلك. نصًا افتراضيًا، أو بدّل إلى بايتات ست عشرية إن كنت تعمل من تفريغ حزم. والافتراضي هو السلسلة 123456789، وهي متجه الاختبار الخاص بالكتالوج نفسه، فأول نتيجة تراها يمكنك البحث عنها في الجدول المنشور.
- اختر الخوارزمية. ابحث بالاسم أو الكنية أو كثير الحدود. وكتابة CRC-32 تصل بك إلى ISO-HDLC، وهو ما يعنيه ذلك الاسم مجردًا، وكتابة كثير حدود تُظهر كل ما يستعمله.
- انظر لوحة المقارنة. حين تشترك الخوارزمية التي اخترتها في كثير الحدود مع غيرها، تظهر جميعها ومعها ما تعيده كل واحدة لمدخلك. وهذا عادةً أسرع طريق لمعرفة أيها يستعمل النظام الذي تصحّحه فعلًا.
خمس خوارزميات مختلفة تُسمّى CRC-32
اثنتا عشرة من الخوارزميات المفهرسة عرضها اثنتان وثلاثون بتة، وخمس منها تتشارك كثير الحدود 0x04C11DB7: وهي ISO-HDLC وBZIP2 وCKSUM وJAMCRC وMPEG-2. ولا تختلف إلا في السجل الابتدائي وأعلام العكس وXOR النهائي، وتعيد خمسة أعداد مختلفة للمدخل نفسه. فعلى السلسلة 123456789 تعطي على الترتيب 0xCBF43926 و0xFC891918 و0x765E7680 و0x340BC6D9 و0x0376E6E7.
ويسجّل الكتالوج الاسم المجرد CRC-32 كنيةً لـ ISO-HDLC وحدها، وهي التي يستعملها zip وgzip وPNG. لكن مواصفةً أو ورقة بيانات أو تذكرة دعم تقول CRC-32 قد تعني أيًا من الخمس، ولا شيء في القيمة الناتجة يسجّل من أنتجها. فإن اختلف نظامان على قيمة بما يشبه ثابتًا، فهذا أول ما يجدر استبعاده: فهو أكثر شيوعًا بكثير من خطأ نقل حقيقي.
والفخ نفسه يقبع درجةً أدنى، وهو هناك أسوأ. فالكتالوج يسرد إحدى وثلاثين خوارزمية بعرض ست عشرة بتة، وإحدى عشرة منها تتشارك كثير الحدود 0x1021 — ومنها XMODEM وKERMIT وIBM-3740 وIBM-SDLC. وسبع أخرى تتشارك 0x8005، ومنها ARC وMODBUS وUSB. ومن ثم فإن CRC بعرض ست عشرة بتة معرَّفة بكثير حدودها وحده ملتبسةٌ على أحد عشر وجهًا، ولهذا فالسبيل الموثوق الوحيد لتسميتها أن تُذكر الوسائط الستة. ولهذا بالضبط وُجد الكتالوج.
كيف يُتحقَّق من هذا، وما معنى عمود الصنف
ينشر الكتالوج قيمة فحص لكل خوارزمية: ناتج تطبيقها على السلسلة 123456789. وهذا يجعل البيانات المرجعية مجموعةَ اختباراتها الخاصة. ويُتحقَّق من هذا المحرك بإعادة إنتاج القيم الـ113 المنشورة، لا بموافقة مكتبة أخرى؛ فموافقة تنفيذ غيرك لا تثبت إلا أن شخصين اتخذا الخيارات نفسها، أما إعادة إنتاج التعريفات فتثبت أن الوسائط اتُّبعت.
وكل خوارزمية عرضها عدد صحيح من البايتات تنشر كذلك بقية، وهي ثابت ثانٍ مستقل يصف ما يحمله السجل بعد قراءة رسالة صحيحة ملحقة بقيمتها. وتُعاد هذه أيضًا، فتُفحص أكثر المدخلات مرتين بخاصيتين مختلفتين. وثمة ضابط سلبي أيضًا: فمجموعة وسائط أُفسدت عمدًا يجب أن تُخفق في قيمة فحصها، وإلا لنجحت المقارنة كلها مع محرك يكتفي بإعادة الجواب المتوقَّع.
وثمة عمود في الكتالوج يستحق الإبقاء وكثيرًا ما يضيع عند نسخ الجداول. فكل مدخل موسوم attested أو confirmed أو academic أو third-party، وذلك يبيّن مدى التثبّت من الوسائط الستة في مقابل تنفيذ عامل، لا جودة الخوارزمية. فـ attested تعني أن أحدًا قابلها بمخرجات حقيقية، وacademic أنها من بحث أو معيار بلا تنفيذ متاح. وستون من الـ113 attested وثمان وثلاثون academic، فثلث الكتالوج تقريبًا وسائط لم يؤكدها أحد في مقابل شفرة عاملة.
وحدّان معلنان. صُمِّمت CRC ضد الفساد العارض ولا تحمي من أي عبث متعمَّد: فمن يستطيع تغيير بياناتك يستطيع إعادة حساب القيمة، فليست CRC إجراءً أمنيًا قط. والحساب هنا يعالج المدخل بتةً بتة، توخيًا للوضوح ودعمًا للعروض الغريبة؛ وهذا يفي بكل ما تلصقه في صندوق نص، وليس هو ما تحسب به قيمة جيجابايت.
لماذا هي مجانية؟
تعمل داخل متصفحك. وإزاحة سجل ليست عملًا يحتاج خادمًا، فلا شيء يُدفع ثمنه ولا حساب يُنشأ.
لا يُرفع شيء مما تلصقه ولا يُخزَّن ولا يُسجَّل. فالبيانات التي تحسب قيمتها عادةً إطار أو ملف من نظام حقيقي، والطريقة الموثوقة لإبقاء ذلك خاصًا ألا نستقبله أبدًا.