CRC循环冗余校验算法是可以根据数据产生固定位数的散列函数,用来校验数据传输/保存后出现的错误,或者说是校验数据的完整性,例如压缩文件。
生成的散列值在传输或者存储之前计算出来并且附加到数据后面。一般循环冗余校验值都是32位的二进制数,即8位的16进制字符串。
一般冗余校验是值CRC-32
CRC-32的实现:使用CRC32类
public static void main(String[] args) throws Exception{
CRC32 crc32 = new CRC32();
crc32.update("中国".getBytes("gbk"));
long result = crc32.getValue();
System.out.println(Long.toHexString(result));
} 同样,需要使用CRC处理输入输出流是,则使用CheckedInputStream和CheckedOutputStream。
工作原理同MD5中的DigestInputStream和DigestOutputStream