Калькулятор CRC (CRC-8, CRC-16, CRC-32, CRC-64)
Вычисляйте CRC-32, CRC-32C, CRC-16 (MODBUS, CCITT, XMODEM), CRC-8 и CRC-64 для текста или hex-байтов. Все варианты сразу, вывод в hex или десятичном виде.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Калькулятор CRC?
Циклический избыточный код (CRC) — короткая контрольная сумма для обнаружения случайных искажений данных. Калькулятор вычисляет CRC-32 (zip, PNG, Ethernet), CRC-32C (iSCSI, ext4, SCTP), CRC-32/BZIP2, CRC-32/MPEG-2, CRC-16/ARC, CRC-16/MODBUS, CRC-16/CCITT-FALSE, CRC-16/XMODEM, CRC-16/KERMIT, CRC-8/SMBUS, CRC-8/MAXIM и CRC-64/XZ для текста, hex- или Base64-ввода и показывает сразу все варианты, чтобы вы нашли тот, который использует ваше устройство или формат файла.
Как пользоваться Калькулятор CRC
- Введите текст в поле Текст для хеширования или выберите Байты в hex как кодировку ввода и вставьте байты кадра или пакета (пробелы игнорируются).
- Выберите нужный Вариант CRC: он отображается сверху и подсвечивается в таблице Все варианты CRC.
- Выберите Формат вывода: hex (строчные или прописные) или Десятичный.
- Нажмите Копировать, чтобы скопировать выбранный CRC, или посмотрите остальные варианты в таблице.
Пример
123456789 (text)
cbf43926
Контрольное значение CRC-32. В таблице также показаны CRC-32C e3069283, CRC-16/MODBUS 4b37, CRC-16/CCITT-FALSE 29b1 и CRC-64/XZ 995dc9bbdf1939fa.
Когда использовать Калькулятор CRC
Используйте его для вычисления и отладки контрольных сумм последовательных протоколов (Modbus RTU, XMODEM), форматов файлов (ZIP, PNG, gzip) и систем хранения и сетей (iSCSI, ext4). Также удобно определять неизвестный CRC, сравнивая известный кадр с таблицей. Не применяйте CRC для защиты: он линеен и легко подделывается — любой может изменить данные и пересчитать CRC. Используйте криптографический хеш или MAC.
Как работает Калькулятор CRC
CRC рассматривает данные как большой двоичный многочлен и вычисляет остаток от его деления на фиксированный порождающий многочлен (по модулю 2). Каждый вариант задаётся шириной, многочленом, начальным значением, признаком отражения входных и выходных битов и конечным значением XOR (модель Rocksoft). Инструмент использует таблицу из 256 записей для каждого варианта и сверяет каждый вариант с контрольным значением из каталога — CRC от ASCII-строки 123456789 (например, CRC-32 = cbf43926, CRC-32C = e3069283, CRC-16/MODBUS = 4b37). Результат показывается как hex-число в порядке big-endian или в десятичном виде.
Распространенные Случаи Использования
- Вычислить CRC-16/MODBUS кадра RTU перед отправкой
- Проверить CRC-32, записанный в ZIP-архиве или блоке PNG
- Определить, какой вариант CRC использует устройство, по образцу кадра
- Сгенерировать значения CRC-32C для тестовых данных хранилища или сети
- Подготовить тестовые векторы для встраиваемой реализации CRC
Примечание по Безопасности
CRC обнаруживает только случайные ошибки. Он не защищает от намеренного изменения, поскольку CRC можно пересчитать или подогнать под любое значение с помощью простой линейной алгебры.
Часто Задаваемые Вопросы
Какой вариант CRC мне нужен?
Его определяет протокол или формат: ZIP, PNG и Ethernet используют CRC-32, iSCSI, ext4 и Btrfs — CRC-32C, Modbus RTU — CRC-16/MODBUS, XMODEM — CRC-16/XMODEM. Если не знаете, сравните известный кадр со всеми строками таблицы.
Modbus передаёт CRC младшим байтом вперёд — почему hex показан иначе?
Инструмент показывает CRC как число в hex в порядке big-endian (например, 4b37). Modbus RTU передаёт его младшим байтом вперёд, поэтому в линии вы увидите 37 4B.
Почему мой hex-кадр даёт не тот CRC, что ожидается?
Убедитесь, что выбрано Байты в hex: при Текст (UTF-8) хешируются сами символы 0–9 и a–f. Также исключите из ввода байты самого CRC.
CRC-32 — это то же самое, что команда cksum?
Нет. POSIX cksum использует неотражённый многочлен CRC-32 и дополнительно учитывает длину файла. Для значений zip, gzip и PNG берите CRC-32 из этого инструмента.