《数据完整性校验技术》

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

技术 原理 纠错能力 检错能力 冗余开销 计算复杂度 典型应用
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
$$