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] <<
8
) ^ crc;
for
(
int
j =
0
; j <
8
; ++j)
if
((crc &
0x8000
) !=
0
)
crc = (crc <<
1
) ^
0x1021
;
else
crc <<=
1
;
}
return
(crc ^
0xFFFF
) &
0xFFFF
;
}
}
联系客服