信息摘要算法-CRC(循环冗余校验)

本文介绍CRC-32算法的基本原理及其在通信领域中的应用,并通过一个简单的Java示例展示如何使用CRC32类进行数据校验。

一、简述

  确切的说CRC不算是信息摘要算法,但是他的原理也是散列函数。他经历过很多版本的改进。现阶段CRC-32算法是通信领域实现差错控制的的主要应用。

 

二、模型分析(以传递压缩数据模型为例):

  甲方对自己的数据做循环冗余校验(CRC)处理,然后向数据尾部追加冗余校验码,然后压缩,发送数据给乙方

  乙方解压缩,分离数据和校验码。然后对分离出的数据进行CRC处理,看得出的冗余校验码和分离出的校验码是否一致。进而判断数据的正确性。

三、java实现

package com.ca.test;
import java.util.zip.CRC32;
/**
 * 测试循环冗余校验
 * @author kongqz
 * */
public class CRC {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String str="测试CRC-32";
		CRC32 c32=new CRC32();
		c32.update(str.getBytes());
		String hex=Long.toHexString(c32.getValue());
		System.out.println("原文:"+str);
		System.out.println("CRC-32处理后:"+hex);
	}
}
控制台输出结果:
原文:测试CRC-32
CRC-32处理后:8734140f

四、总结

1、CRC32算法很常见。类似消息摘要算法,只不过它是将原文和摘要信息组合后发送给对方

2、算法是公开的。验证也很方便。上述算法调整下就可以做文件校验了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值