CRC,全称 “Cyclic Redundancy Check”,中文名“循环冗余码”,“CRC校验”就是“循环冗余校验”。

    它的应用范围很广泛,最常见的就是在网络传输中进行信息的校对。其实我们大可以把它应用到软件保护中去,因为它的计算是非常非常非常严格的。严格到什么程度呢?你的程序只要被改动了一个字节(甚至只是大小写的改动),它的值就会跟原来的不同。Hoho,是不是很厉害呢?所以只要给你的“原”程序计算好CRC值,储存在某个地方,然后在程序中随机地再对文件进行CRC校验,接着跟第一次生成并保存好的CRC值进行比较,如果相等的话就说明你的程序没有被修改/破解过,如果不等的话,那么很可能你的程序遭到了病毒的感染,或者被Cracker用16进制工具暴力破解过了。(此资料转载)

    经过半个月的努力,昨天顺利用C++编程把CRC-8、CRC-16、CRC-CCITT实现。算法不难得到(网上一大堆),但是理解CRC算法、完善一些CRC程序的不足就要经过很久的修改。例如: 当得到冗的“帧检验序列”(FCS,Frame Check Sequence)首部为零时,C++默认省略首部的零。

    很遗憾没有实现CRC-32,制作的CRC-32检验程序输出与理论有出入。

    下来的工作就是把CRC程序用MFC实现图形界面。……好像很有难度,因为没有学过MFC。[confused]