校验值与散列摘要都可把数据映射到较短的数值,目的和安全性质却不同。CRC 主要用于检测意外错误;密码学散列还要求更强的抗碰撞等性质,但仅有散列值也不能自动证明文件来自某人。[1][2]
比较时的单位
同一文件只改动一个字节,重新计算的结果也可能不同。比较时需确认算法名称、输入的原始字节及输出表示。文本的换行、UTF-8 BOM 或文件末尾空格都属于输入字节,不能先“看起来一样”就认为摘要相同。
选用边界
CRC家族、MD5 与 SHA家族 分别有独立条目。MD5 可用于识别旧材料中的既有值,但不宜承担需要抗碰撞的安全验证;文件真伪还需可信发布渠道或数字签名。[3]
参考资料
返回图片与文件