Хэш 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 — исторические детали конкретного стандарта, а не сути алгоритма.
Характеристики
| Параметр | Значение |
|---|---|
| Длина суммы | 32 бита (8 hex-символов) |
| Метод | Деление многочленов над GF(2), реализуется таблицей на 256 значений |
| Тип | Контрольная сумма (не криптографический хэш) |
| Придуман | 1961, Уэсли Питерсон (общая идея CRC) |
| Вариант CRC-32 | IEEE 802.3, закреплён в 1980-х |
Где применяется
- ZIP, gzip, PNG — проверка, что файл распаковался/скачался без повреждений
- Ethernet (Frame Check Sequence) — обнаружение ошибок при передаче кадров
- RAID-контроллеры, файловые системы, протоколы хранения — быстрая проверка целостности блоков
Криптостойкость
CRC32 никогда не была криптографической функцией — и не задумывалась как таковая. Она линейна: имея исходные данные и желаемую контрольную сумму, можно математически вычислить 4 байта, которые при добавлении к файлу дадут ровно нужный CRC — это не «атака», а штатная линейная алгебра над GF(2), выполняется мгновенно. Использовать CRC32 для защиты от намеренной подделки, паролей или подписей нельзя категорически — только для обнаружения случайных ошибок передачи и хранения.