CRC-16 with 0xA001 polynomial

nihilist84 picture nihilist84 · Sep 25, 2010 · Viewed 12.9k times · Source

I would like to compute the CRC-16 checksum of a byte array, with 0xA001 polynomial. But I don't really know how to do it in Java, and how the given polynomial is used. Is it some kind of special value (0xA001)? Can you point me to a library that can compute the checksum for me, or point me to some useful resources?

Thanks in advance, M.

Answer

trashgod picture trashgod · Sep 25, 2010

It appears you want the CRC-16-IBM polynomial, x16 + x15 + x2 + 1, reversed (0xA001). A Java implementation of CRC-16 using the CRC-16-CCITT polynomial, x16 + x12 + x5 + 1, may be found here; a corresponding unit test is here. These should get you started in the right direction.