网上下载的许多文件会提供 md5sum, sha1sum, sha128sum, sha256sum, sha512sum 等散列值,用来校验文件是否下载完整. Linux 环境的 GNU Coreutils 还提供了一个 cksum, 用来校验 CRC Checksum, 跟 md5 一类的东西相似吗?搜索资料简单看了一下,好像并非同类型的东西。因为 CRC Checksum 还分为 CRC-32, CRC-64 等不同的类型。
我最早是在微软的 MSDN 网站注意到 CRC Checksum, 比如这个:
File Name: cn_windows_7_professional_with_sp1_x86_dvd_622569.iso
ISO/CRC: 06B204FD
在 Linux 系统下用 cksum 去计算其 CRC, 然后换算成 16 进制数,并不能得到上面的 06B204FD.
然后这几天我在研究小米手机的刷机包,发现其中有一个 crclist.txt 文件,纪录了各分区映像的 CRC Checksum. 同样地,用 GNU cksum 去计算其 CRC 并换算成 16 进制数,也不能得到同样的 Checksum.
那么上述微软的 ISO 文件以及小米的刷机分区映像文件的 CRC 应该用什么工具校验呢?