编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / 校验和

校验和

校验和(checksum,也叫校验值)是按固定算法从一段数据算出的一个较短的值,用来检测数据在传输或存储过程中是否被意外改动。发送方算出校验和随数据一起发出,接收方用同样的算法重新计算,两个值一致就大概率没出错,不一致则说明数据损坏。它的核心目标是发现"错误",而不是防"篡改"。

常见实现从简单到复杂:

使用要点与误区:校验和只在防意外损坏时可靠,不等于安全。CRC32 和简单求和都能被轻易伪造,攻击者可以一边改数据一边凑出相同的校验和;MD5 也已被攻破,不宜用于防篡改。若要抵御恶意篡改,应使用带密钥的 HMAC 或数字签名,而非普通校验和。此外,校验和相同只是"极大概率"相同,不同数据理论上仍可能碰撞出同一个值。

常见问题

校验和和哈希是一回事吗?
不完全是。哈希是更通用的概念,把任意数据映射为固定长度的值;校验和是哈希的一种典型用途,专门用于错误检测。CRC32 属于校验和算法,MD5/SHA 本质是哈希,但也常被拿来当校验和用。
校验和一致就能证明文件没被人篡改吗?
不能。普通校验和(如 CRC32、MD5)都可能被伪造或碰撞,只适合发现意外损坏。要防恶意篡改,需要用 HMAC 或数字签名。
下载软件时核对 MD5/SHA256 有意义吗?
有,能确认下载过程没出错、文件没被截断或损坏。但如果下载源本身被入侵、页面上的校验值也被一并替换,就防不住,所以应优先信任来自可信渠道的 SHA-256 值。

相关工具

相关名词