| | |
| | | int crcLength = 4;//crc校验4个字节 |
| | | //去掉包头包尾 |
| | | byte[] payloadCrc32 = ByteUtils.removeHeaderAndFooter(packet, headerLength, footerLength); |
| | | System.out.println(DatatypeConverter.printHexBinary(payloadCrc32)); |
| | | //System.out.println(DatatypeConverter.printHexBinary(payloadCrc32)); |
| | | //获取到数据携带的crc32值 |
| | | byte[] oldCrc32 = ByteUtils.getLastBytes(payloadCrc32, crcLength); |
| | | System.out.println(DatatypeConverter.printHexBinary(oldCrc32)); |
| | | //System.out.println(DatatypeConverter.printHexBinary(oldCrc32)); |
| | | //去掉包头包尾crc32字节,仅保留负载 |
| | | byte[] payload = ByteUtils.removeHeaderFooterAndCRC(packet, headerLength, footerLength, crcLength); |
| | | System.out.println(DatatypeConverter.printHexBinary(payload)); |
| | | //System.out.println(DatatypeConverter.printHexBinary(payload)); |
| | | //计算负载的crc32值 |
| | | byte[] NewCrc32 = ByteUtils.parseCrc32(payload); |
| | | System.out.println(DatatypeConverter.printHexBinary(NewCrc32)); |
| | | //System.out.println(DatatypeConverter.printHexBinary(NewCrc32)); |
| | | //判断数据的crc32校验值和计算值是否相同 |
| | | if (Arrays.equals(oldCrc32, NewCrc32)) { |
| | | return true; |