CRC 校验
支持 CRC-8 / CRC-16 / CRC-32 / CRC-32C
在线CRC校验工具
免费在线CRC校验计算器。支持CRC-8、CRC-16/Modbus、CRC-32、CRC-32C四种算法,适用于串口通信、网络传输、文件校验等场景。
四种CRC算法
一次输入同时计算 CRC-8、CRC-16/Modbus、CRC-32、CRC-32C 四种校验码,满足不同协议和场景需求。
高性能计算
基于预计算查找表实现,计算速度极快。支持大文件CRC校验,拖拽即可计算。
完全本地处理
所有计算在浏览器本地完成,数据不经过任何服务器。支持文本和文件两种输入方式。
CRC算法百科
了解每种CRC算法的参数、特点与应用场景。
CRC-8
嵌入式/低速多项式 0x07 · 1字节
最简单的CRC算法,输出1个字节。常用于1-Wire协议、SMBus总线、低速嵌入式通信。检错能力有限,适合短数据帧。
CRC-16/Modbus
工业/Modbus多项式 0x8005 · 2字节
Modbus RTU协议的标准校验算法。广泛用于工业自动化、PLC通信、传感器网络。支持输入和结果反射,初始值0xFFFF。
CRC-32
ZIP/网络/文件多项式 0x04C11DB7 · 4字节
最广泛使用的CRC算法。ZIP、PNG、GIF等文件格式的标准校验,以太网帧校验序列(FCS)也使用此算法。检错能力强,能检测所有奇数位错误。
CRC-32C
存储/文件系统多项式 0x1EDC6F41 · 4字节
Castagnoli CRC,也称iSCSI CRC。比标准CRC-32有更好的错误检测能力。Intel SSE4.2提供硬件加速指令,现代CPU上性能极佳。用于Btrfs、ext4等文件系统。
应用场景
串口通信
RS232/RS485串口数据传输的标准校验方式。Modbus RTU协议使用CRC-16保证数据帧完整性。
网络传输
以太网帧使用CRC-32作为帧校验序列(FCS)。每个数据包的完整性都由CRC保障。
存储校验
ZIP、PNG、GIF等文件格式使用CRC-32。Btrfs、ext4文件系统采用CRC-32C保护数据安全。
嵌入式开发
单片机、传感器、IoT设备间的数据校验。CRC-8适合资源受限的嵌入式场景。
CRC校验专业知识
多项式除法
CRC的核心原理是将数据视为一个巨大的二进制数,用预定的生成多项式做模 2 除法,余数就是CRC值。不同的生成多项式决定了算法的检错能力。
查找表优化
实际实现中通常使用预计算的256项查找表,将逻辑运算换为查表操作,大幅提高计算速度。本工具即采用该方法,确保高性能。
CRC vs 哈希
CRC专为检测传输错误设计,计算快但不具备加密安全性。哈希函数(如SHA-256)设计目标是抗碰撞,适合安全场景但计算较慢。两者不可互替。
硬件加速
现代CPU提供了CRC硬件加速指令。Intel SSE4.2的CRC32C指令可达数GB/s吞吐量。ARM也有ACLE CRC32扩展。这使得CRC在高速存储场景中开销忽略不计。
常见问题
Q.CRC-16和CRC-32应该用哪个?
取决于协议要求。Modbus RTU规定使用CRC-16;ZIP文件、以太网规定使用CRC-32。一般来说,CRC位数越高,检错能力越强,但开销也越大。
Q.CRC能否用于数据加密?
绝对不能。CRC只是检错码,不提供任何安全性。攻击者可以轻松构造具有相同CRC值的不同数据。安全场景应使用哈希函数(如SHA-256)。
Q.为什么同样的数据算出不同的CRC?
不同的CRC算法参数(多项式、初始值、是否反射、结果异或值)会产生不同的结果。例如CRC-16有十几种变体,必须确保双方使用相同的参数集。
Q.CRC能检测出所有错误吗?
CRC能检测所有单比特和双比特错误,以及所有奇数位的突发错误。但存在极小概率的多位错误无法检测。CRC-32的未检测错误概率约为 1/2³²,即小于十亿分之一。