CRC-калькулятор – CRC-8, CRC-16 и CRC-32

Расчёт контрольной суммы текста или шестнадцатеричных байтов по стандартным профилям CRC-8, CRC-16, CRC-32 и CRC-32C.

✓ Вычисления выполняются только в браузере✓ Профили проверены по эталонным значениям
Перед расчётом текст кодируется в байты UTF-8.

Результат CRC

CRC-32/ISO-HDLC · 9 байт

Шестнадцатеричный0xCBF43926
Десятичный3421780262
Двоичный0b11001011111101000011100100100110
Разрядность32 bit
Poly0x04C11DB7
Init0xFFFFFFFF
RefIn / RefOutДа / Да
XorOut0xFFFFFFFF
Check0xCBF43926

CRC-калькулятор для текста и HEX-данных

Инструмент вычисляет циклический избыточный код для текста UTF-8 или шестнадцатеричных байтов. Одной разрядности недостаточно: Poly, Init, RefIn, RefOut и XorOut должны совпадать с параметрами устройства или протокола.

Поддерживаемые профили CRC

Профиль Разрядность Типичное применение
CRC-8/SMBUS 8 бит SMBus и короткие сообщения
CRC-8/MAXIM-DOW 8 бит Устройства Dallas/Maxim 1-Wire
CRC-16/ARC 16 бит Общие и устаревшие форматы
CRC-16/CCITT-FALSE 16 бит Связь и встроенные системы
CRC-16/MODBUS 16 бит Сообщения Modbus RTU
CRC-16/XMODEM 16 бит Передача XMODEM
CRC-32/ISO-HDLC 32 бит ZIP, Ethernet и файлы
CRC-32C/CASTAGNOLI 32 бит Хранилища и сети

Как рассчитать CRC

  1. Выберите профиль, указанный в документации протокола.
  2. Выберите текст UTF-8 или шестнадцатеричные байты.
  3. Введите данные и нажмите «Рассчитать CRC».
  4. Скопируйте HEX-сумму или сравните десятичное и двоичное представления.

123456789 — стандартная контрольная строка для проверки реализаций CRC. Каждый профиль на странице протестирован по эталонному значению.

Текст и HEX-байты

В текстовом режиме символы сначала кодируются в UTF-8. Не-ASCII символ может занимать несколько байтов. HEX-режим использует введённые байты напрямую: 31 32 33 соответствует ASCII-строке 123.

CRC — не шифрование

CRC обнаруживает случайные ошибки передачи и хранения, но не является криптографическим хешем и не защищает от намеренного изменения.

Частые вопросы

Почему два CRC-калькулятора дают разные результаты?

Вероятно, выбраны разные профили. Сравните Poly, Init, RefIn, RefOut и XorOut.

CRC-32 и CRC-32C одинаковы?

Нет. Они используют разные полиномы, поэтому результаты несовместимы.

Данные отправляются на сервер?

Нет. Кодирование и расчёт выполняются локально в браузере.