Tag: crc

用Java计算CRC8-Maxim校验和

我正在尝试用java编写CRC8-Maxim计算器,但是我被卡住了。 我已经尝试过许多API,例如Jacksum,但没有任何效果。 我发现的唯一的东西是这个网站: http : //www.sunshine2k.de/coding/javascript/crc/crc_js.html 如果我选择CRC8-Maxim设置,结果正是我需要的结果。 (示例:VR1的校验和,?,应为D7) 你有什么想法,我怎么能在java中编码? 我最后的学校项目需要它,剩下的时间不多了。 提前致谢! 本尼迪克特 [编辑]我用这个代码试了一下。 它具有与网站上的计算器相同的查找表和相同的多项式。 import java.io.UnsupportedEncodingException; public final class Crc8 { private static final short CRC8_POLYNOMIAL = 0x31; private static final short CRC8_INIT_VALUE = 0x0; private static final short[] CRC8_LOOKUP_TABLE = { 0x00, 0x31, 0x62, 0x53, 0xC4, 0xF5, 0xA6, 0x97, 0xB9, 0x88, 0xDB, 0xEA, 0x7D, […]

Java CRC32:与C#中的CRC不同

我必须将带有java的文件与C#脚本提供的C​​RC32代码进行比较。 当我用java.util.zip.CRC32计算CRC32时,结果完全不同…… 我的猜测是C#脚本的多项式= 0x2033与zip.CRC32中使用的不同。 是否可以设置多项式? 或者用于计算CRC32的java类的任何想法,您可以在其中定义自己的多项式? 更新:问题不是多态。 这在C#和Java之间是相同的 这是我的代码,也许我读取文件的方式有问题? package com.mine.digits.internal.contentupdater; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.CRC32; public class CRC { public static String doConvert32(File file) { byte[] bytes = readBytesFromFile(file); // readFromFile(file).getBytes(); CRC32 x = new CRC32(); x.update(bytes); return (Long.toHexString(x.getValue())).toUpperCase(); } /** Read the contents of the given file. */ […]

如何获得CRC64分布式计算(使用其线性属性)?

我需要对存储在分布式FS上的相当大的文件进行哈希处理。 我能够以比整个文件更好的性能处理文件的部分,所以我希望能够计算部分的哈希值然后求和。 我正在考虑将CRC64作为散列算法,但我不知道如何使用其理论上的“线性函数”属性,因此我可以对文件的各个部分求和。 有什么建议? 我错过了什么? 附加说明为什么我CRC64 : 我可以控制文件块,但由于应用程序性质,它们需要具有不同的大小(最多1个字节,不可能有任何固定块)。 我知道CRC32实现( zlib ),其中包括对部分CRC进行求和的方法,但我想要更广泛的东西。 8个字节对我来说很好看。 我知道CRC非常快。 我希望从中获益,因为文件可能非常庞大(高达Gb)。

获取字节数组的CRC校验和并将其添加到该字节数组

我有这个字节数组: static byte[] buf = new byte[] { (byte) 0x01, (byte) 0x04, (byte)0x00, (byte)0x01,(byte)0x00, (byte) 0x01}; 现在,该字节数组的CRC校验和应该是0x60,0x0A。 我希望Java代码重新创建此校验和,但我似乎无法重新创建它。 我试过crc16: static int crc16(final byte[] buffer) { int crc = 0xFFFF; for (int j = 0; j >> 8) | (crc <> 4); crc ^= (crc << 12) & 0xffff; crc ^= ((crc & 0xFF) << 5) […]

将C CRC16转换为Java CRC16

我目前正在开展一个项目,有一个嵌入式系统通过无线电将数据发送到PC。 数据包最后获得crc16校验和,并根据此算法计算: uint16_t crc16 (const uint8_t * buffer, uint32_t size) { uint16_t crc = 0xFFFF; if (buffer && size) while (size–) { crc = (crc >> 8) | (crc <> 4; crc ^= crc << 12; crc ^= (crc & 0xFF) << 5; } return crc; } 现在我正在寻找Java中的等价物。 我已经在这里找到了一个好的: http : //introcs.cs.princeton.edu/java/51data/CRC16CCITT.java.html public class CRC16CCITT […]