public class CRC
{
static public int[] Table = new int[256];
static
{
for (int i = 0; i < 256; i++)
{
int r = i;
for (int j = 0; j < 8; j++)
if ((r & 1) != 0)
r = (r >>> 1) ^ 0xEDB88320;
else
r >>>= 1;
Table[i] = r;
}
}
int _value = -1;
public void Init()
{
_value = -1;
}
public void Update(byte[] data, int offset, int size)
{
for (int i = 0; i < size; i++)
_value = Table[(_value ^ data[offset + i]) & 0xFF] ^ (_value >>> 8);
}
public void Update(byte[] data)
{
int size = data.length;
for (int i = 0; i < size; i++)
_value = Table[(_value ^ data[i]) & 0xFF] ^ (_value >>> 8);
}
public void UpdateByte(int b)
{
_value = Table[(_value ^ b) & 0xFF] ^ (_value >>> 8);
}
public int GetDigest()
{
return _value ^ (-1);
}
}
分享到:
相关推荐
本工具支持常用的所有CRC校验 比如: CRC-4/TU CRC-5/EPC CRC-5/ITU CRC-6/TU CRC-7/MMC CRC-8 CRC-8/ITU CRC-8/ROHC CRC-8/MAXIM CRC-16/BM CRC-16/MAXIM CRC-16/USB CRC-16/MODBUS CRC-16/CCITT CRC-16/CCITT-...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测方法。它通过计算数据的校验码来检查数据的完整性,确保数据在传输或存储过程中没有发生错误。CRC计算器是用于生成或验证CRC...
CRC,即循环冗余校验(Cyclic Redundancy Check),是一种广泛应用于数据通信和存储中的错误检测技术。它通过计算数据的一种特定校验值,来检查数据在传输或存储过程中是否发生了错误。CRC的基本原理是利用多项式除...
CRC,即循环冗余校验(Cyclic Redundancy Check),是一种广泛应用于数据通信和存储领域的错误检测技术。CRC通过附加一个简短的校验码到数据块来确保数据的完整性,这个校验码是根据数据计算出来的。在标题和描述中...
标题提及了四种CRC类型:CRC8、CRC16、CRC-CCITT和CRC32,它们分别代表了不同宽度的CRC校验码: 1. **CRC8**:这是一种8位的CRC校验,适用于校验较短的数据块。它使用一个8位的生成多项式,计算过程相对简单,常...
标题中的“crc_add_crc8_CRC16_matlab_CRC24_crc_”暗示这是一个关于在MATLAB环境中实现CRC计算的程序,涵盖了CRC8、CRC16和CRC24三种不同长度的校验码。CRC8适用于简单的错误检测场景,CRC16则提供更强的校验能力,...
在计算机网络通信与存储技术中,循环冗余校验(CRC,Cyclic Redundancy Check)是一种校验数据完整性的常用手段。其原理基于多项式除法,通过对数据位串进行运算,得到一个短的固定位数的校验值,即CRC校验码。CRC...
CRC32,全称为Cyclic Redundancy Check(循环冗余校验),是一种广泛用于数据传输和存储中的错误检测方法。在本主题中,我们主要关注如何利用CRC32的特性来尝试解密某些特定的压缩包,尤其是针对标题中提到的"crc32-...
在本压缩包中,"csw-crc32-crc16-crc8.zip"包含了一个C语言实现的CRC校验库,它提供了对CRC8、CRC16和CRC32三种不同宽度的CRC校验函数。 首先,CRC8是最简单的版本,适用于只需要较小校验码的情况。CRC8通常用于低...
CRC计算器是用于生成这些校验码的工具,本项目实现的CRC计算器支持CRC4、CRC5、CRC6、CRC7、CRC8、CRC16和CRC32等多种不同的CRC算法,覆盖了从小到大多种常用位宽。 CRC的核心思想是基于多项式除法,将数据看作一个...
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测方法。在C#编程环境中,CRC32校验通常用于确保数据在传输或存储过程中没有发生错误。这个压缩包"crc_32_c.rar"包含了...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测方法。它通过计算数据的校验码来检查数据的完整性,确保数据在传输或存储过程中没有发生错误。CRC8是CRC的一种变体,其中“8...
CRC,全称是Cyclic Redundancy Check,中文译为循环冗余校验,是一种广泛应用于数据通信和存储系统中的错误检测技术。它通过在数据传输或存储前添加一个校验码来验证数据的完整性,确保数据在传输过程中没有发生错误...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误检测的校验码技术。它通过计算数据的一种特定函数,生成一个简短的固定位数的校验码,附加在数据后面,接收方再进行同样的计算,以检查数据...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测方法。它通过计算数据的校验码并与预期的校验码进行比较,来判断数据在传输或存储过程中是否发生错误。CRC的实现通常涉及...
IEEE 802.3 标准中规定的 CRC32 算法 在STM32H743硬件CRC 与软件CRC,同时包括MD5算法,还包含crc4_itu、crc5_epc、crc5_itu、crc5_usb、crc6_itu、crc7_mmc、crc8、crc8_itu、crc8_rohc、crc8_maxim、crc16_ibm、...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误检测的校验码技术。CRC编码是通过一个特定的数学算法,即生成多项式,对原始数据进行运算,生成一个固定位数的校验码,附加在原始数据后面...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误检测的校验码技术。它通过计算数据的二进制串在某种规则下的余数,将这个余数附加到数据后面,形成一个校验码。接收方同样对接收到的数据...
CRC,即循环冗余校验,是一种广泛应用于数据通信和存储中的错误检测方法。CRC的基本原理是通过一种特定的数学算法,对传输或存储的数据进行校验,以确保数据的完整性。这种算法基于二进制的异或(XOR)运算,而非传统...