2012-11-26 3 views
2

Java에서 CRC32 클래스를 사용하려고합니다. 데이터의 입력은 이더넷 패킷 (Eth + IP + 페이로드)을 나타내는 바이트 배열입니다. 그러나 CRC32 클래스의 체크섬 출력은 wireshark에 표시된 것과 다릅니다.java CRC32 클래스를 사용하는 방법

CRC32 클래스의 CRC 계산이 표준 이더넷 II 체크섬 계산과 동일한 지 아무에게도 알려 줄 수 있습니까?

+0

[Wikipedia] (http://en.wikipedia.org/wiki/Cyclic_redundancy_check#Commonly_used_and_standardized_CRCs)에 따르면 동일해야하지만 바이트 순서가 결과에 영향을 미치는지 확인하십시오. – nhahtdh

답변

3

예, 동일한 CRC입니다. 즉 동일한 32 비트 여야합니다. 그러나 그 비트는 당신이 기대하는 곳에서 끝나지 않을 수도 있습니다. 바이트를 반대로하고, 비트를 반대로하고, 양쪽 모두를 반대로하여 일치하는 항목이 있는지 확인하십시오.

+1

감사합니다. wireshark는 0x30d9bc72를 반환하고 Java는 72bcd930을 반환합니다 (바이트 순서를 뒤집습니다). –

관련 문제