《数据完整性校验技术》

记录下自己遇到的关于数据校验的需求

技术 原理 纠错能力 检错能力 冗余开销 计算复杂度 典型应用
Parity 添加1位校验位(奇/偶校验) 无 单比特错误 极低 极低 串口通信、内存基础校验
Checksum 累加或异或运算生成校验值 无 整体和错误 低 低 IP协议头校验、简单文件验证
CRC 多项式除法生成固定长度校验码 无 突发错误、多比特 中 中 以太网、硬盘存储
ECC 冗余校验位(如汉明码、BCH码) 单比特纠正 双比特检测 高 高 服务器内存(ECC RAM)
BCC 逐字节异或运算生成校验码 无 偶数个错误 低 极低 串行通信、低延迟传输
哈希校验 哈希函数生成固定长度摘要值 无 篡改检测 无 中高 文件完整性、数字签名
海明码 冗余位编码实现错误定位 单比特纠正 双比特检测 中高 中 早期通信系统、基础内存校验
数字签名 非对称加密+哈希算法 无 来源验证+防篡改 高 高 安全通信、电子合同

ISO 8473-1 Checksum(Fletcher-255)

CRC

$$
x^{16} + x^{12} + x^5 + 1
$$

单字节累加和

$$
\left( \sum_{i=0}^{n-1} b_i \right) \bmod 256
$$