Which one to use
CRC-8 (poly 0x07) shows up in SMBus/1-Wire style short frames. CRC-16-CCITT (poly 0x1021, init 0xFFFF) is common in Modbus-adjacent and serial protocols — double check your protocol's exact init/reflection settings, since CRC-16 variants differ. CRC-32 (poly 0xEDB88320, reflected, standard zlib/Ethernet flavor) is the one used by gzip, PNG, and Ethernet FCS. Plain XOR and sum checksums are weaker but still used in simple embedded protocols for cheap error detection.