遇到JAMCRC方式的CRC32效验问题,查遍了网络,没有现成的实现,经过查找资料和现有代码改进最终实现,下面是代码:
//private static int[] crc32Table ={....} 约定的crc32表
public static String getCRC32ForJAMCRC(String hex) {
byte[] bytes = hexToBytes(hex);//十六进制字符串转byte[]
int crc = 0xffffffff;
for (byte b : bytes) {
crc = (crc >>> 8 ^ crc32Table[(crc ^ b) & 0xff]);
}
crc = crc ^ 0x00000000;
return getRepair0(Integer.toHexString(crc).toUpperCase(),8);//此处getRepair0()是补0操作
}
//hexToBytes方法:十六进制字符串转byte[],网上很多
//getRepair0方法:补0的,很简单,自己实现吧

文章提供了一段Java代码,用于解决JAMCRC方式的CRC32校验问题。作者在找不到现成实现的情况下,通过研究和改造已有代码,成功编撰出能计算CRC32校验值的函数,主要涉及字节转换、位操作和CRC表格应用。
1353






