Java语言实现CRC32校验

原创 2016年06月01日 23:55:07

源代码:

<span style="font-size:14px;">package crcNew;

public class CRC32 {
	private int crc;
	private String mx;

	public CRC32(String mx) {
		crc = 0x00000000;
		this.mx = mx;
		getCrc();
	}

	private void crc(byte data) {
		int point = 0b10000000;
		while (point > 0) {
			if ((((data & point) == point) ^ ((crc & 0x80000000) == 0x80000000))) {
				crc = (crc << 1) ^ 0x04c11d87;
			} else {
				crc <<= 1;
			}
			point >>= 1;
		}
	}

	private void getCrc() {
		byte[] bytes = mx.getBytes();
		for (int i = 0; i < bytes.length; i++) {
			crc(bytes[i]);
		}
	}

	public String getCRC() {
		return Integer.toHexString(crc);
	}

}
</span>

测试代码:


package crcNew;

public class TestCRC32 {
	public static void main(String[] args) {
		CRC32 c = new CRC32("12");
		System.out.println(c.getCRC());
	}
}

结果:


注意:由于传输顺序不同结果会不同,应区别是从低位到高位校验还是从高位到低位校验


也可直接调用Java内置CRC32对象,可直接得出校验值,该方法与rar压缩软件的校验值一致:

<span style="font-size:14px;">package crcNew;

import java.util.zip.CRC32;

public class CheckCRC {
	public static void main(String[] args) {
		java.util.zip.CRC32 crc = new CRC32();
		crc.update("12".getBytes());
		System.out.println(Long.toHexString(crc.getValue()));
	}
}</span>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

CRC原理及其C语言、Java语言实现

1.CRC简介 CRC(cyclical redundancy check) 循环冗余校验,在《计算机组成原理》里面有这个知识点。类似的校验有奇偶校验。   可以简单的理解成在发送数...

Java 实现CRC32校验和MD5

现在发现Java中也有现成的函数可以调用,详细代码如下: CRC32 crc32 = new CRC32(); crc32.update("abc".getBytes()); System.out....

C语言 一个crc32校验算法

#include static const uint32_t crc32tab[] = { 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, ...

CRC32校验算法C语言版(查表法)

最近用到CRC校验算法,就找了些资料,学习了一下,网上关于CRC32的资料也多,但感觉不是很完整,或者太高深。 CRC算法查表法很常见,但表是怎么来的,有些资料说得不很清楚。 我来说一下我的看法: 1...

C语言 CRC32校验算法

#include #include #include typedef signed char s8; typedef unsigned char u8; typedef signed sho...

Java自定义协议报文封装 添加Crc32校验

开启两个线程,模拟Socket服务端和客户端通信,将数据封装为指定格式报文发送 代码:
  • Mr_Sk
  • Mr_Sk
  • 2016-04-29 23:58
  • 2294

JAVA循环冗余校验(CRC32)

CRC32简介CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。

C语言CRC32校验

java 实现CRC32和MD5

1. CRC校验 CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。 其特点是...

以太网帧FCS校验码CRC32的三种实现方法

提供了三种实现方法。 方法一:按位计算CRC32校验码。 方法二:使用非翻转的查找表进行快速计算,按字节计算CRC32校验码。但计算过程中有位翻转操作,计算速度慢。 方法三:使用翻转...
  • qsycn
  • qsycn
  • 2012-08-08 15:32
  • 3096
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)