常见校验算法 一、校验算法 奇偶校验(单字节奇偶校验和多字节奇偶校验) MD5 校验 求校验和 BCC(Block Check Character/信息组校验码),常说的异或校验方法 CRC(Cyclic Redundancy Check/循环冗余校验) LRC(Longitudinal Redundancy Check/纵向冗余校验) 二、奇偶校验 内存中最小的单位是比特,也称为“位”,位有只有两种状态分别以 1 和 0 来标示,每 8个连续的比特叫做一个字节(byte)
不带奇偶校验的内存每个字节只有 8 位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误
而奇偶校验就是在每一字节(8 位)之外又增加了一位作为错误检测位
在某字节中存储数据之后,在其 8 个位上存储的数据是固定的,因为位只能有两种状态 1 或 0,假设存储的数据用位标示为 1、1、 1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数,那么在校验位定义为 1,反之为 0
当 CPU 读取存储的数据时,它会再次把前 8 位中存储的数据相加,计算结果是否与校验位相一致
从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误 三、MD5 校验 MD5 的全称是 Message-Digest Algorithm 5,在 90 年代初由 MIT 的计算机科学实验室和 RSA Data Security Inc 发明,由 MD2/MD3/MD4 发展而来的
MD5 的实际应用是对一段 Message(字节串)产生 fingerprint(指纹),可以防止被“篡改”
举个例子,天天安全网提供下载的MD5校验值软件WinMD5
zip,其MD5值是1e07