Вставьте ожидаемое значение CRC32, чтобы сравнить его с текущим расчетом.
Входные байты
0
Всего вычислений
0
Текущий вариант
ISO-HDLC
Прошло (мс)
—
CRC-32/ISO-HDLCPKZip · PNG · Ethernet
Наиболее распространенная реализация CRC-32, также называемая CRC-32b. Он использует отраженную форму полинома 0x04C11DB7, а именно 0xEDB88320. Как входные, так и выходные байты отражаются по битам (сначала младший бит), причем начальное значение и конечное исключающее ИЛИ устанавливаются в 0xFFFFFFFF.
Широко используется в ZIP, gzip, изображениях PNG, кадрах Ethernet (IEEE 802.3), PKCS#7 и многих устаревших системах. Это де-факто вариант CRC-32 по умолчанию.
| Полином | 0x04C11DB7(нормальный) /0xEDB88320(отражено) |
| Начальное значение | 0xFFFFFFFF |
| Отражение ввода | Да (RefIn = true) |
| Отражение вывода | Да (RefOut = true) |
| Окончательное исключающее ИЛИ | 0xFFFFFFFF |
| Проверить значение | 0xCBF43926(для «123456789») |
CRC-32C / КастаньолиiSCSI · NVMe · SCTP
Предложенный Г. Кастаньоли и его коллегами в 1993 году, этот вариант использует полином 0x1EDC6F41 (отраженная форма 0x82F63B78). При том же расстоянии Хэмминга он обеспечивает более эффективное обнаружение пакетов ошибок, чем полином ISO-HDLC.
Аппаратное ускорение доступно с помощью инструкций Intel SSE4.2 и ARM CRC32. Он широко используется в современных протоколах хранения и транспорта, таких как iSCSI, NVMe, Btrfs и SCTP.
| Полином | 0x1EDC6F41(нормальный) /0x82F63B78(отражено) |
| Начальное значение | 0xFFFFFFFF |
| Отражение ввода | Да (RefIn = true) |
| Отражение вывода | Да (RefOut = true) |
| Окончательное исключающее ИЛИ | 0xFFFFFFFF |
| Проверить значение | 0xE3069283(для «123456789») |
CRC-32/MPEG-2MPEG-2 · DVB · ATSC
Использует тот же полином 0x04C11DB7, что и ISO-HDLC, но ни ввод, ни вывод небитное отражение(сначала старший бит, обратный порядок байтов). Начальное значение — 0xFFFFFFFF, а окончательное исключающее ИЛИ отключено (XorOut = 0x00000000).
В основном используется для таблиц PSI/SI в транспортных потоках MPEG-2 (PAT, PMT, NIT и связанные таблицы), а также для проверок целостности в системах вещания DVB и ATSC.
| Полином | 0x04C11DB7 |
| Начальное значение | 0xFFFFFFFF |
| Отражение ввода | Нет (RefIn = ложь) |
| Отражение вывода | Нет (RefOut = ложь) |
| Окончательное исключающее ИЛИ | 0x00000000(отключено) |
| Проверить значение | 0x0376E6E7(для «123456789») |
CRC-32 / BZIP2BZip2 · AAL5 · DECT
Его параметры практически идентичны MPEG-2 (полином 0x04C11DB7, отсутствие отражения, начальное значение 0xFFFFFFFF). Единственная разница заключается вфинальное исключающее ИЛИ с 0xFFFFFFFF, который переворачивает каждый бит. Он также известен как CRC-32/AAL5 или CRC-32/DECT-B.
Используется форматом сжатого файла BZip2 и полем контрольной суммы концевика протокола ATM AAL5.
| Полином | 0x04C11DB7 |
| Начальное значение | 0xFFFFFFFF |
| Отражение ввода | Нет (RefIn = ложь) |
| Отражение вывода | Нет (RefOut = ложь) |
| Окончательное исключающее ИЛИ | 0xFFFFFFFF |
| Проверить значение | 0xFC891918(для «123456789») |
UTF-8 ТекстПо умолчанию · Общие
Рассматривает ввод какUTF-8строку, преобразует ее в байты, а затем вычисляет CRC32. Это наиболее распространенный режим для обычного текста, исходного кода, JSON и аналогичного контента.
Примечание. Один и тот же текст, закодированный другим набором символов, например GBK или UTF-16, создает другой поток байтов и, следовательно, другое значение CRC32. Этот инструмент всегда использует UTF-8.
| Наилучший вариант для | Обычный текст, исходный код, JSON, XML |
| Пример | "Привет" →48 65 6C 6C 6F(5 байт) |
| CJK Персонажи | Большинство символов CJK используют 3 байта в UTF-8. |
ШестнадцатеричныйДвоичные данные · Кадры протокола
Рассматривает ввод как необработанныйшестнадцатеричные байтовые литералы. Пробелы и разрывы строк игнорируются. Каждые два шестнадцатеричных символа становятся одним байтом (00–FF).
Полезно, когда вам нужны проверки CRC для точных двоичных данных, таких как сетевые кадры, фрагменты образа прошивки или дампы памяти. Вы можете вставить вывод Wireshark или шестнадцатеричного дампа напрямую.
| Формат | Только0-9иa-f / A-Fразрешены |
| Количество символов | Должен быть четным (2 символа в байте) |
| Пример | 48656C6C6F= "Привет" (5 байт) |
| Пробелы | Игнорируется автоматически.48 65 6Cто же самое, что48656C |
Base64Двоичный код · Сертификаты · Изображения
Рассматривает ввод какСтрока в кодировке Base64, декодирует его в необработанные байты, а затем вычисляет CRC32. Полезно для сертификатов PEM, полезных данных JWT, URI данных и другого содержимого Base64.
Поддерживает стандартный алфавит Base64 (A-Z a-z 0-9 + /). Символ заполнения=является необязательным. URL-безопасный Base64 (-_) не поддерживается.
| Алфавит | A-Z a-z 0-9 + / = |
| Пример | SGVsbG8=→ «Привет» (5 байт) |
| URL-безопасный | Не поддерживается. Заменить-→+и_→/первый |
| ⚠ 1 символ | Invalid — 6 бит недостаточно для формирования 1 байта (требуется 8 бит) |
| 2 Символы | Декодирует в1 байт(минимальный допустимый ввод) |
| 3 символов | Декодирует в2 байта |
| 4 символов | Декодирует в3 байта(шаблон повторяется каждые 4 символа) |
ШестнадцатеричныйНаиболее распространенный · По умолчанию
Отображает значение в виде 8-значного шестнадцатеричного числа в верхнем регистре с префиксом0x. Каждый символ представляет 4 бита, всего 32 бита. Это стандартный формат, используемый в большинстве инструментов, исходного кода и документации.
По сравнению с десятичным выводом, шестнадцатеричный формат облегчает проверку границ байтов и более естественно сопоставляет дампы памяти и поля протокола.
| Пример | 0xCBF43926 |
| Длина | 8 шестнадцатеричных символов = 32 бита |
| База | База 16 (0–9, A–F) |
| Наилучший вариант для | Код, документация, Wireshark, шестнадцатеричные редакторы |
Десятичный32-битное целое число без знака
Отображает контрольную сумму в виде32-битное десятичное целое число без знакав диапазоне 0–4 294 967 295 (2³²−1). Некоторые языки и инструменты сравнивают значения CRC в десятичной форме, и поля базы данных часто хранят это представление.
Примечание. Результаты CRC32 следует рассматривать как целые числа без знака. В типах со знаком int, таких как Java или C#, значения выше 0x7FFFFFFF могут выглядеть отрицательными и должны быть преобразованы в uint или более широкое беззнаковое представление.
| Пример | 3421780262 |
| Диапазон | 0–4,294,967,295 |
| Примечание | Для Java int конвертируйте с помощью& 0xFFFFFFFFFL |
| Наилучший вариант для | Базы данных, значения структур Python, числовое сравнение |
ДвоичныйБитовый анализ
Отображает контрольную сумму в виде 32-битной двоичной строки с префиксом0b. Каждый символ имеет значение 0 или 1, выравнивается по старшему биту слева и при необходимости дополняется ведущими нулями.
В основном полезно для понимания внутреннего алгоритма CRC, изучения полиномиального деления, обучения и встроенных сценариев, требующих обработки контрольной суммы на уровне битов.
| Пример | 0b11001011…00100110 |
| Длина | Фиксировано 32 бита с заполнением левым нулем. |
| Старший бит | Бит 31 (старший бит) появляется в крайнем левом углу. |
| Наилучший вариант для | Анализ алгоритмов, обучение, встроенная отладка |
ВосьмеричныйUnix · Файловые системы
Отображает контрольную сумму в виде 11-значного восьмеричного числа с префиксом0o. Для 32 бит требуется не более 11 восьмеричных символов, поскольку 3×11 = 33 > 32. Каждая восьмеричная цифра представляет 3 бита.
Инструмент
Восьмеричный вывод редко встречается в современных рабочих процессах CRC, но он все еще появляется в некоторых инструментах Unix, встроенных наборах инструментов встроенного ПО и старых спецификациях протоколов связи.
| Пример | 0o31572031046 |
| Длина | До 11 восьмеричных цифр |
| За цифру | Представляет 3 бита (0–7). |
| Наилучший вариант для | Инструменты Unix, старые спецификации протоколов |