CRC32 Генератор хешей
Бесплатный онлайн-инструмент CRC32 Генератор хешей. 100% локальная обработка — ваши данные никогда не покидают устройство.
Результат будет отображен здесь...
Ввод → Вычислить хеш
Usage Guide
О CRC32
CRC32 (Циклический избыточный код, 32 бита) — алгоритм обнаружения ошибок на основе полиномиального деления. Использует полином CRC-32/ISO-HDLC (0xEDB88320, отражённый) для формирования 32-битной (8 шестнадцатеричных символов) контрольной суммы из произвольного ввода. CRC32 широко применяется в ZIP-архивах, кадрах Ethernet, gzip и PNG-файлах для обнаружения случайного повреждения данных.
Порядок использования
CRC32 — односторонняя контрольная сумма: она вычисляет фиксированное значение из входных данных и не может быть обращена:
Формат вывода
CRC32 всегда выводит ровно 8 шестнадцатеричных символов (32 бита / 4 байта), независимо от длины входных данных. Одни и те же данные всегда дают один и тот же результат. Даже изменение одного символа порождает полностью другую контрольную сумму (лавинный эффект). Пример: «hello» → «3610A686».
CRC32 и криптографические хеш-функции
CRC32 и криптографические хеши (SHA-256, SHA-3, BLAKE2) служат принципиально разным целям и не должны смешиваться:
FAQ
Q: Безопасен ли CRC32 для проверки целостности файлов?
A: Нет. CRC32 может обнаруживать только случайное повреждение (например, переворот бит при передаче). Злоумышленник легко создаст вредоносный файл с тем же CRC32, что и легитимный. Для безопасной проверки целостности файлов всегда используйте SHA-256 или более стойкие хеши, в идеале в сочетании с цифровой подписью.
Q: Как возможно, что два разных ввода дают одинаковый CRC32?
A: CRC32 отображает произвольный ввод всего в 2^32 (~4 млрд) возможных значений, поэтому коллизии математически неизбежны. Важнее то, что линейная математическая структура CRC над GF(2) делает намеренное создание коллизий тривиально простым — достаточно добавить короткий суффикс к любому сообщению, чтобы за микросекунды получить любое нужное значение CRC32.
Q: Где CRC32 применяется на практике?
A: CRC32 широко используется в несекьюрных контекстах, где важны скорость и простота: ZIP- и gzip-архивы хранят CRC32 для обнаружения ошибок передачи; Ethernet (802.3) добавляет к каждому пакету 32-битную проверочную последовательность кадра (FCS); блоки PNG-изображений содержат CRC32; контрольные суммы дисковых секторов во многих файловых системах; верификация потоков zlib и deflate. Все они полагаются исключительно на способность CRC32 обнаруживать случайные ошибки, но не умышленные атаки.
Q: В чём разница между CRC32 и MD5?
A: Оба быстры и дают выходные данные фиксированной длины, но принципиально различны: MD5 — криптографический хеш (128 бит / 32 шестнадцатеричных символа), разработанный для безопасности, хотя теперь он скомпрометирован. CRC32 — некриптографическая контрольная сумма (32 бита / 8 шестнадцатеричных символов), предназначенная только для обнаружения ошибок. CRC32 быстрее, но устойчивость к коллизиям несравнимо ниже. Сегодня ни тот, ни другой не должны использоваться в целях безопасности — предпочтите SHA-256 или BLAKE2.
Q: Могут ли разные данные иметь одинаковое значение CRC32?
A: Да — это называется коллизией, и её очень легко намеренно создать в CRC32. Два совершенно разных файла или строки могут иметь одно и то же 8-символьное значение CRC32. Это ожидаемое поведение для контрольных сумм обнаружения ошибок и одна из ключевых причин, по которым CRC32 никогда нельзя использовать в качестве механизма безопасности.
Q: Можно ли использовать CRC32 для хеширования паролей?
A: Абсолютно нет. CRC32 не является криптографическим хешем и не обладает ни одним из свойств, необходимых для хеширования паролей: тривиально быстрый (позволяет миллиарды попыток в секунду), коллизии тривиально создаются, отсутствует поддержка соли. Используйте специализированный алгоритм хеширования паролей: Argon2id, bcrypt или scrypt. Руководство см. в шпаргалке OWASP по хранению паролей.
Use Cases
Рекомендуется: Контрольные суммы ZIP / gzip архивов
ZIP и gzip используют CRC32 для обнаружения повреждения файлов при хранении или передаче. Это эталонный сценарий: доверенный отправитель вычисляет CRC32, получатель проверяет его, чтобы поймать случайные битовые ошибки. Никакой враждебной среды не предполагается.
- ✅ CRC32 для внутренней целостности ZIP/gzip (соответствует стандартам)
- ✅ CRC32 для верификации блоков PNG
- ✅ CRC32 для проверки потоков gzip/zlib
- ❌ Не полагаться на CRC32 для обнаружения умышленной подмены файлов
Рекомендуется: Обнаружение ошибок в сетевых пакетах
Ethernet (IEEE 802.3) добавляет к каждому кадру 32-битную проверочную последовательность. Аппаратное обеспечение вычисляет и проверяет её на скорости линии. CRC32 отлично подходит здесь, поскольку ошибки случайны (шум), а не намеренны, и скорость критична.
- ✅ CRC32 / CRC-32C для проверки пакетов Ethernet, iSCSI, SCTP
- ✅ CRC32 для обнаружения ошибок в последовательных/UART-коммуникациях
- ❌ Не подходит для защиты сетевых коммуникаций — используйте TLS/HMAC
Рекомендуется: Валидация данных во встраиваемых системах
Микроконтроллеры и встроенная прошивка используют CRC32 для проверки содержимого флеш-памяти, целостности данных EEPROM и корректности загрузочного образа. Аппаратные блоки CRC (например, CRC-периферия STM32) вычисляют один такт на байт.
- ✅ CRC32 для проверки образа прошивки (не-безопасная загрузочная проверка)
- ✅ CRC32 для целостности данных EEPROM / NVM
- ✅ CRC32 для фреймирования коммуникационных протоколов
- ❌ Для защищённой загрузки сочетать с криптографической подписью (ECDSA/RSA)
Допустимо: Дедупликация данных без требований к безопасности
CRC32 можно использовать как быстрый первичный фильтр для группировки данных по контрольной сумме и поиска возможных дубликатов при условии толерантности к коллизиям (например, вторичное сравнение подтверждает идентичность). Не используйте CRC32 в одиночку как единственный ключ дедупликации в хранилищах с требованиями к безопасности.
- ✅ CRC32 как быстрый предварительный фильтр перед побайтовым сравнением
- ⚠️ CRC32 в одиночку как ключ дедупликации (риск коллизии ~1 из 4 млрд)
- ❌ CRC32 для адресуемого по содержимому хранилища с требованиями к безопасности
- 💡 Рассмотрите BLAKE2 или SHA-256 для дедупликации с гарантиями целостности
Не рекомендуется: Любые задачи безопасности
CRC32 никогда нельзя использовать для аутентификации, защиты целостности от злоумышленников, хеширования паролей, цифровых подписей или создания цифровых отпечатков контента в задачах безопасности. Для любого хеширования, требующего безопасности, используйте SHA-256, SHA-3 или BLAKE2.
- ❌ CRC32 для хеширования паролей
- ❌ CRC32 для цифровых подписей или MAC
- ❌ CRC32 для токенов аутентификации API
- ❌ CRC32 для критически важной проверки целостности файлов
- ✅ SHA-256 / SHA-3 / BLAKE2 для всех задач безопасности
Сводка рекомендаций
- CRC32 подходит только для обнаружения случайного повреждения данных в доверенных, не враждебных средах.
- CRC32 не обеспечивает никакой безопасности — коллизии тривиально создаются, криптографических свойств нет.
- Для любых задач безопасности (аутентификация, целостность, подписи, пароли) используйте SHA-256, SHA-3 или BLAKE2.
- CRC32 — правильный выбор внутри ZIP, gzip, PNG, Ethernet и встроенной прошивки — это его проектная область.
- При сомнениях выбирайте SHA-256 по умолчанию: быстрый, повсеместно поддерживаемый и криптографически безопасный.