CRC16校验码 java实现

1,输入一串字符。
2,返回该字符串的CRC16校验码
3,CRC16校验码的产生是通过“查表法”获得。

private static String mkCrc16(String str) {
CRC16 crc16 = new CRC16();
byte[] b = str.getBytes();
for (int i = 0; i < b.length; i++)
crc16.update(b[i]);
return Integer.toHexString(crc16.value);
}

private static String mkCrc(String string) throws Exception {

CRC32 crc32 = new CRC32();
crc32.update(string.getBytes());

return Long.toHexString(crc32.getValue());
}


public class CRCUtil {
public static final int evalCRC16(byte[] data) {
int crc = 0xFFFF;
for (int i = 0; i < data.length; i++) {
crc = (data[i] << ^ crc;
for (int j = 0; j < 8; ++j)
if ((crc & 0x8000) != 0)
crc = (crc << 1) ^ 0x1021;
else
crc <<= 1;
}

return (crc ^ 0xFFFF) & 0xFFFF;
}
}

你可能感兴趣的:(java,J#)