Как рассчитать полином CRC-CCITT (Kermit)

У меня проблема с CRC. Мое сообщение в шестнадцатеричном виде: 80 00 00 03 CRC является f5 1f. Я думал, полином является 0x1021 (кермит crc-ccitt). Как узнать, какой полином правильный? И как я могу увидеть, если мне нужно, чтобы это было в обратном порядке и если начальное значение 0xffff или 0x0000 или что-то еще? Как я могу вычислить искомый полином? Должен ли я конвертировать 80 00 00 03 и f5 f1 в БИН, а затем разделить оба?
Я пытался прикрыться прогой reveng, но это не было успешным. Может быть, потому что у меня есть не все параметры -.-

Я нашел php-функцию ВОТ

но это не будет рассчитывать правильную сумму для меня. Может быть, это не CRC-CCITT KERMIT в этой php-функции

0

Решение

0x1ff5 действительно является CRC-CCITT (Kermit) 80 00 00 03, (По-видимому, он хранится в порядке с прямым порядком байтов в вашем потоке.)

PHP-код, который вы нашли, предназначен для ложный «CRC-CCITT», который вы можете найти в каталоге RevEng Вот.

правда Параметры CRC-CCITT (Kermit) здесь, в этом каталоге. Биты инвертированы, поэтому вы используете инвертированный полином, 0x8408и вы сдвигаете биты вниз, а не вверх. Начальное содержимое регистра равно нулю, и нет окончательного исключающего-или.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector