找点东西来研究一下吧,把本来自己眼前的一座高高的大山,挖空踩扁,再使劲跺上几脚是不是很爽!哈哈
最近几天钻了好一阵CRC(循环冗余校验),搞不懂他是怎么回事???在网上找了几篇文章也是说的不清楚,还好现在弄明白了
我要计算png图片中的crc32校验和,因为改变png图片中某数据块的数据后,按照标准规定需要从新计算校验和写入文件(实际上不更新校验和,图片一般也能用)。
1> crc32原理 : 带模2运算的多项式长除法,求余数
基本思路:对于一串数据d,d的二进制序列对应的多项式除以32位生成多项式g(x)
X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X+1
对应于0X04c11db7,X^32的系数隐藏在算法中。
2> png中的crc32原理: 与标准crc32有所不同,对数据处理前后各做了一些处理
(初始余数寄存器为全一,最终余数取反(据w3c标准规定))
3> 注意:
对数据流的对待方式为,原数据以八位的字节流为例,每一字节的高位被视为低位,每一字节的低位被视为高位,全部数据从高位到低位的顺序处理,例
原数据:10010110 11001101 10101110 10001011 (1)