crc --- การคำนวณ CRC

โมดูล crc คำนวณ checksum แบบ 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

คำนวณ checksum CRC16 บน data ซึ่งต้องเป็นออบเจกต์ที่คล้ายบัฟเฟอร์ (เช่น bytes, bytearray, หรือ memoryview)

หากไม่ได้ระบุ value จะเริ่ม CRC16 ใหม่บน data และคืนค่า หากระบุ value จะใช้เป็นสถานะ CRC16 ก่อนหน้าและอัปเดตด้วย data ก่อนคืนค่า ทำให้สามารถคำนวณ CRC16 ข้ามหลายบัฟเฟอร์ได้ จะใช้เพียง 16 บิตล่างของ value

คืนค่า CRC16 ที่ได้เป็น int

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

คำนวณ checksum CRC32 บน data ซึ่งต้องเป็นออบเจกต์ที่คล้ายบัฟเฟอร์ (เช่น bytes, bytearray, หรือ memoryview)

หากไม่ได้ระบุ value จะเริ่ม CRC32 ใหม่บน data และคืนค่า หากระบุ value จะใช้เป็นสถานะ CRC32 ก่อนหน้าและอัปเดตด้วย data ก่อนคืนค่า ทำให้สามารถคำนวณ CRC32 ข้ามหลายบัฟเฟอร์ได้

คืนค่า CRC32 ที่ได้เป็น int