Хэш CRC16 (ARC) онлайн — калькулятор и разбор алгоритма | lavarden.ru
Войти

Хэш CRC16 (ARC) онлайн

16-битная контрольная сумма — компактнее CRC32, применяется в протоколах передачи данных. Считается прямо в браузере — текст никуда не отправляется.

Вычислить CRC16 (ARC)

Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.

История CRC16

CRC-16 — 16-битный представитель того же семейства циклических избыточных кодов, что и CRC32: та же идея Уэсли Питерсона (1961), деление многочленов над GF(2), только с генераторным многочленом вдвое короче. В эпоху, когда каждый лишний байт контрольной суммы имел значение — медленные модемные линии, ранние микроконтроллеры без аппаратного умножения, — 16-битная версия часто была практичнее 32-битной: она компактнее и в некоторых реализациях быстрее считается.

У CRC-16 есть особенность, которая исторически создавала путаницу: под этим названием скрывается не один алгоритм, а целое семейство параметризаций с разным порождающим многочленом, начальным значением и порядком бит. Разные протоколы выбрали разные варианты — и одна и та же строка, «посчитанная через CRC-16» в двух разных системах, может дать два разных результата.

Как устроена контрольная сумма

Механика в точности та же, что у CRC32: данные — это двоичный многочлен, который делят на фиксированный порождающий многочлен, а результат — остаток от деления, реализуемый на практике через таблицу на 256 значений и побайтовую обработку. Разница только в степени порождающего многочлена — 16 вместо 32, — и, для конкретной реализации этого инструмента, в самом многочлене: используется вариант CRC-16/ARC (порождающий многочлен 0x8005, начальное значение 0x0000, без финального XOR).

ВариантГде встречается
CRC-16/ARCОбщего назначения, используется этим инструментом
CRC-16/MODBUSПромышленный протокол Modbus (ПЛК, датчики)
CRC-16/CCITTBluetooth, некоторые протоколы связи
CRC-16/XMODEMПротокол передачи файлов XMODEM

Именно из-за такого разнообразия при интеграции с конкретным протоколом важно сверяться с его спецификацией, а не полагаться на название «CRC-16» без уточнения параметров.

Характеристики

ПараметрЗначение
Длина суммы16 бит (4 hex-символа)
МетодДеление многочленов над GF(2), вариант CRC-16/ARC
Порождающий многочлен0x8005
ТипКонтрольная сумма (не криптографический хэш)

Где применяется

Криптостойкость

⚠️

Как и CRC32, CRC16 — линейная функция без какой-либо криптографической защиты: контрольную сумму под заданные данные можно подделать тривиально. Используйте только для обнаружения случайных ошибок передачи и хранения, никогда — для защиты от намеренной подделки.

Пример

СтрокаHello, world!
CRC169a4a
Пустая строка0000