crc --- حساب CRC

تحسب الوحدة crc المجاميع الاختبارية CRC16 وCRC32 على مخازن مؤقتة شبيهة بالبايت. يمكن استدعاء كل دالة باستخدام data فقط لبدء CRC جديد، أو باستخدام value سابقة لمتابعة CRC قائم عبر عدة مخازن مؤقتة.

مثال:

import crc

c = crc.crc32(b"hello ")
c = crc.crc32(b"world", value=c)
print(hex(c))

الدوال

crc.crc16(data: bytes, *, value: int = None) int

تحسب مجموعاً اختبارياً من نوع CRC16 على data، التي يجب أن تكون كائناً شبيهاً بالمخزن المؤقت (مثل bytes أو bytearray أو memoryview).

إذا لم تُقدَّم value، يُبدأ CRC16 جديد على data ويُعاد. إذا قُدِّمت value، تُستخدم كحالة CRC16 السابقة وتُحدَّث بـ data قبل إعادتها، مما يتيح حساب CRC16 عبر عدة مخازن مؤقتة. تُستخدم البتات الـ 16 الدنيا فقط من value.

يعيد CRC16 الناتج كـ int.

crc.crc32(data: bytes, *, value: int = None) int

تحسب مجموعاً اختبارياً من نوع CRC32 على data، التي يجب أن تكون كائناً شبيهاً بالمخزن المؤقت (مثل bytes أو bytearray أو memoryview).

إذا لم تُقدَّم value، يُبدأ CRC32 جديد على data ويُعاد. إذا قُدِّمت value، تُستخدم كحالة CRC32 السابقة وتُحدَّث بـ data قبل إعادتها، مما يتيح حساب CRC32 عبر عدة مخازن مؤقتة.

يعيد CRC32 الناتج كـ int.