Расчет CRC-CCITT (Kermit) на двух разных сайтах, дает разные результаты

Я играл с CRC-CCITT (Kermit) и заметил, что при вычислении контрольной суммы на разных сайтах я получал разные результаты.

На lammertbies.nl/comm/info/crc-calculation.html результат 123456789 был 0x8921, а на crccalc.com - 0x2189.

Фактически, любое значение, которое вы вводите в crccalc, совпадает с lammertbies, но с последними двумя символами в первую очередь. Таким образом, foobar для lammertbies имеет значение 0xF4E3, а для crccalc - 0xE3F4.

Какой сайт правильный и что другой сайт делает неправильно?

1 ответ

Решение

Это проблема с прямым и обратным порядком байтов в сообщенном значении CRC.

Вы можете проверить большинство реализаций CRC, добавив CRC в строку и проверив добавленную строку для CRC == 0. Вернитесь на оба веб-сайта калькулятора CRC, измените ввод на hex, введите строку hex

"3132333435363738398921"

CRC Kermit будет равен 0000, поэтому CRC, добавленный к строке, будет 0x89, 0x21.

Другие вопросы по тегам