DevToys Web Pro iconDevToys Web ProБлог
Оцените нас:
Попробуйте расширение для браузера:

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

  • Режим:
    CRC-8
  • 87 (135)
    CRC-16
  • FA4D (64077)
    CRC-24
  • DF8BCE (14650318)
    CRC-32
  • EC4AC3D0 (3964322768)
    Adler-32
  • 1F9E046A (530449514)
    Технические детали

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

    Что делает инструмент

    Калькулятор контрольных сумм вычисляет некриптографические контрольные суммы для проверки целостности данных, поддерживая алгоритмы CRC-16, CRC-24, CRC-32, Adler-32 и Luhn. Он принимает как обычный текст, так и ввод сырых шестнадцатеричных байтов, позволяя проверять контрольные суммы для сетевых протоколов, форматов файлов и идентификационных номеров. Результаты отображаются в шестнадцатеричном и десятичном виде для удобного сравнения со спецификациями.

    Распространенные сценарии использования для разработчиков

    Разработчики используют CRC-калькуляторы при отладке сетевых протоколов (Ethernet использует CRC-32, PPP использует CRC-16), проверке целостности файлов в архивных форматах вроде ZIP и PNG или валидации идентификационных номеров по алгоритму Luhn (кредитные карты, IMEI). Инженеры встраиваемых систем используют этот инструмент, чтобы убедиться, что реализации CRC дают ожидаемый результат, прежде чем прошивать firmware или тестировать кадры последовательной связи.

    Форматы данных, типы или варианты

    CRC-16 (CCITT) выдаёт 16-битную контрольную сумму, используемую в XMODEM, Bluetooth и USB. CRC-32 (ISO 3720) выдаёт 32-битное значение, используемое в Ethernet, ZIP и PNG. Adler-32 — более быстрый вариант CRC-32, применяемый в zlib. Luhn mod-10 — это не CRC, а алгоритм контрольной цифры, используемый для проверки номеров кредитных карт, кодов ISIN и номеров IMEI. Режим hex-ввода позволяет вводить сырые последовательности байтов для проверки на уровне протокола.

    Распространенные ошибки и крайние случаи

    У алгоритмов CRC существует множество вариантов полиномов и инициализации — CRC-16-CCITT отличается от CRC-16-IBM, поэтому всегда уточняйте, какой вариант ожидает протокол. Контрольные суммы выявляют случайные повреждения, но не дают никакой защиты от намеренной подмены; для этого используйте криптографические хэши. При использовании режима hex-ввода убедитесь, что байты введены без разделителей или с единообразным форматированием, поскольку лишний полубайт (nibble) сдвинет все последующие байты.

    Когда использовать этот инструмент, а когда — код

    Используйте этот браузерный инструмент для быстрых точечных проверок при отладке кадров протокола, валидации одного номера кредитной карты по алгоритму Луна или сравнении результата CRC со спецификацией. Для массовой проверки файлов, CI-пайплайнов или сборок встроенной прошивки используйте нативные для языка библиотеки CRC (zlib.crc32 в Python, crc-пакеты для Node на основе Buffer), которые умеют обрабатывать потоки и интегрироваться в автоматизированные рабочие процессы.