Python-скрипты

Александр Бельченко

Расчет контрольной суммы CRC16 для бинарного файла

Утилита crc16.py позволяет подсчитать контрольную сумму бинарного файла по алгоритму CRC16 со следующими параметрами:

  • образующий полином — 0x1021
  • начальное значение CRC — 0x0000

Использование:

Командная строка:
    python crc16.py [options] infile [outfile]

Здесь:
    infile  --  имя входного файла
    outfile --  имя выходного файла

Опции (options):
    -q, -Q  --  тихий запуск (посчитанная CRC не печатается на экране)
    -r      --  записать CRC в последние 2 байта входного файла
    -a      --  добавить CRC после содержимого входного файла
    -l      --  записать CRC в файл в формате little Endian (младший байт первым)
    -b, -B  --  записать CRC в файл в формате Big Endian (по умолчанию)

Без указания опций -r или -a утилита просто печатает на экране расчитанное CRC.

По умолчанию утилита расчитывает CRC для всего содержимого входного файла кроме 2х последних байт. Если в командной cтроке указывается опция -a, то CRC расчитывается для всех байт без исключения.

Утилита представляет собой пример того, как из сишного кода получить код на питоне. Я взял свой готовый исходник на Си для расчета CRC16 и положил его в основу утилиты crc16.py.

crc16.py
В архиве содержатся утилита crc16.py и эквивалентный код на Си для расчета CRC16.