Калькулятор хэш-кода CRC-32
Опубликовано: 17 февраля 2025 г. в 18:12:15 UTC
Калькулятор хэш-кода, использующий хэш-функцию CRC-32 (Cyclic Redundancy Check 32 bit) для вычисления хэш-кода на основе введенного текста или загрузки файла.CRC-32 Hash Code Calculator
Cyclic Redundancy Check (CRC) — это код обнаружения ошибок, обычно используемый для обнаружения случайных изменений в необработанных данных. Хотя технически это не криптографическая хэш-функция, CRC-32 часто называют хешем из-за его способности создавать выход фиксированного размера (32 бита) из входных данных переменной длины.
Полное раскрытие информации: я не писал конкретную реализацию хэш-функции, используемой на этой странице. Это стандартная функция, входящая в состав языка программирования PHP. Я лишь сделал веб-интерфейс, чтобы сделать ее общедоступной здесь для удобства.
Об алгоритме хэширования CRC-32
Я не математик, но попробую объяснить эту хэш-функцию простой аналогией. В отличие от многих криптографических хэш-функций, это не особенно сложный алгоритм, так что, наверное, все будет в порядке ;-)
Представьте, что вы отправляете письмо по почте, но беспокоитесь, что оно может быть повреждено до того, как дойдет до получателя. На основе содержания письма вы вычисляете контрольную сумму CRC-32 и записываете ее на конверте. Когда получатель получает письмо, он или она может также вычислить контрольную сумму и проверить, совпадает ли она с тем, что вы написали. Если это так, письмо не было повреждено или изменено по пути.
CRC-32 делает это в четыре этапа:
Шаг 1: Добавьте немного дополнительного пространства (отступ)
- CRC добавляет немного дополнительного места в конце сообщения (как упаковка арахиса в коробке).
- Это помогает легче обнаруживать ошибки.
Шаг 2: Волшебная линейка (многочлен)
- CRC-32 использует специальную «волшебную линейку» для измерения данных.
- Представьте себе эту линейку как узор из выступов и канавок (это многочлен, но не беспокойтесь об этом слове).
- Наиболее распространенной «линейкой» для CRC-32 является фиксированный шаблон.
Шаг 3: Перемещение линейки (процесс деления)
- Теперь CRC проводит линейкой по сообщению.
- В каждой точке проверяется, совпадают ли выступы и канавки.
- Если они не совпадают, CRC делает пометку (это делается с помощью простого XOR, похожего на включение или выключение переключателей).
- Он продолжает двигать и переключать переключатели, пока не достигнет конца.
Шаг 4: Окончательный результат (контрольная сумма)
- Проведя линейку по всему сообщению, у вас останется небольшое число (длиной 32 бита), представляющее исходные данные.
- Этот номер является своего рода уникальным отпечатком пальца сообщения.
- Это контрольная сумма CRC-32.
Представленная на странице версия — это оригинальная функция CRC-32, которую следует использовать для лучшей совместимости с другими системами.
У меня есть калькуляторы и для других вариантов: