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

Хэш CRC32 онлайн

Контрольная сумма для обнаружения случайных ошибок — не криптографическая, используется в ZIP и Ethernet. Считается прямо в браузере — текст никуда не отправляется.

Вычислить CRC32

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

История CRC32

CRC (Cyclic Redundancy Check, циклический избыточный код) — не хэш-функция в криптографическом смысле, а метод обнаружения ошибок, придуманный Уэсли Питерсоном в 1961 году для контроля передачи данных по ненадёжным каналам связи. Идея опирается на чистую математику: рассматривать данные как один большой двоичный многочлен и делить его на фиксированный «порождающий многочлен» — остаток от такого деления и есть контрольная сумма.

32-битный вариант с полиномом, который сегодня называют CRC-32 (стандарт IEEE 802.3), закрепился в Ethernet ещё в 1980-х, а затем перекочевал в форматы ZIP (1989), PNG (1996), gzip и множество сетевых протоколов — везде, где нужно дёшево проверить, не «побился» ли файл или пакет при передаче или хранении.

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

В отличие от MD5/SHA, у CRC нет раундов, регистров состояния или нелинейных функций. Механизм — деление многочленов над полем GF(2), где сложение и вычитание — это просто XOR, без переносов. Данные (все биты подряд) представляются как многочлен степени N, где N — число бит минус один. Этот многочлен делят на фиксированный порождающий многочлен степени 32 — а остаток от деления, дополненный до 32 бит, и есть значение CRC-32.

На практике деление битами никто не делает — это было бы слишком медленно. Вместо этого используют таблицу на 256 значений, предпосчитанную заранее: она позволяет обрабатывать данные по байту за шаг, обновляя 32-битный регистр одной операцией XOR и табличным поиском. Стандартный CRC-32 (тот, что в ZIP и Ethernet) ещё и «отражает» биты на входе и выходе и применяет финальный XOR с 0xFFFFFFFF — исторические детали конкретного стандарта, а не сути алгоритма.

Данные D(x) как один двоичный многочлен ÷ Порождающий G(x) степень 32, фиксирован стандартом деление по модулю 2 (без переносов, XOR вместо вычитания) Остаток = CRC-32 (32 бита)
CRC — остаток от деления данных на фиксированный многочлен, а не «перемешивание» состояния

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

ПараметрЗначение
Длина суммы32 бита (8 hex-символов)
МетодДеление многочленов над GF(2), реализуется таблицей на 256 значений
ТипКонтрольная сумма (не криптографический хэш)
Придуман1961, Уэсли Питерсон (общая идея CRC)
Вариант CRC-32IEEE 802.3, закреплён в 1980-х

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

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

⚠️

CRC32 никогда не была криптографической функцией — и не задумывалась как таковая. Она линейна: имея исходные данные и желаемую контрольную сумму, можно математически вычислить 4 байта, которые при добавлении к файлу дадут ровно нужный CRC — это не «атака», а штатная линейная алгебра над GF(2), выполняется мгновенно. Использовать CRC32 для защиты от намеренной подделки, паролей или подписей нельзя категорически — только для обнаружения случайных ошибок передачи и хранения.

Пример

СтрокаHello, world!
CRC32ebe6c6e6
Пустая строка00000000