Miklix

Калькулятор хэш-кода CRC-32C

Опубликовано: 17 февраля 2025 г. в 18:45:14 UTC

Калькулятор хэш-кода, использующий хэш-функцию CRC-32C (циклический избыточный код 32 бит, вариант C) для вычисления хэш-кода на основе введенного текста или загрузки файла.

Эта страница была переведена с английского языка для того, чтобы сделать ее доступной как можно большему числу людей. К сожалению, машинный перевод еще не является совершенной технологией, поэтому возможны ошибки. Если вы хотите, вы можете просмотреть оригинальную английскую версию здесь:

CRC-32C Hash Code Calculator

Cyclic Redundancy Check (CRC) — это код обнаружения ошибок, обычно используемый для обнаружения случайных изменений в необработанных данных. Хотя технически CRC-32 не является криптографической хэш-функцией, его часто называют хешем из-за его способности создавать выходные данные фиксированного размера (32 бита) из входных данных переменной длины. Версия, представленная на этой странице, — это вариант CRC-32C, который является более новой, «умной» (лучше обнаруживающей ошибки) версией, которая часто ускоряется аппаратно на современных процессорах (через SSE 4.2).

Полное раскрытие информации: я не писал конкретную реализацию хэш-функции, используемой на этой странице. Это стандартная функция, входящая в состав языка программирования PHP. Я лишь сделал веб-интерфейс, чтобы сделать ее общедоступной здесь для удобства.


Вычислите новый хэш-код

Данные, переданные или загруженные через эту форму, будут храниться на сервере только в течение времени, необходимого для генерации запрашиваемого хэш-кода. Они будут удалены непосредственно перед тем, как результат будет возвращен вашему браузеру.

Исходные данные:



Представленный текст имеет кодировку UTF-8. Поскольку хэш-функции оперируют двоичными данными, результат будет отличаться от того, если бы текст был в другой кодировке. Если вам нужно вычислить хэш текста в определенной кодировке, вам следует загрузить файл.



Об алгоритме хэширования CRC-32C

Я не математик, но попробую объяснить эту хэш-функцию простой аналогией. В отличие от многих криптографических хэш-функций, это не особенно сложный алгоритм, так что, наверное, все будет в порядке ;-)

Представьте, что вы отправляете письмо по почте, но беспокоитесь, что оно может быть повреждено до того, как дойдет до получателя. На основе содержания письма вы вычисляете контрольную сумму CRC-32 и записываете ее на конверте. Когда получатель получает письмо, он или она может также вычислить контрольную сумму и проверить, совпадает ли она с тем, что вы написали. Если это так, письмо не было повреждено или изменено по пути.

CRC-32 делает это в четыре этапа:

Шаг 1: Добавьте немного дополнительного пространства (отступ)

  • CRC добавляет немного дополнительного места в конце сообщения (как упаковка арахиса в коробке).
  • Это помогает легче обнаруживать ошибки.

Шаг 2: Волшебная линейка (многочлен)

  • CRC-32 использует специальную «волшебную линейку» для измерения данных.
    • Представьте себе эту линейку как узор из выступов и канавок (это многочлен, но не беспокойтесь об этом слове).
    • Наиболее распространенной «линейкой» для CRC-32 является фиксированный шаблон.

Шаг 3: Перемещение линейки (процесс деления)

  • Теперь CRC проводит линейкой по сообщению.
    • В каждой точке проверяется, совпадают ли выступы и канавки.
    • Если они не совпадают, CRC делает пометку (это делается с помощью простого XOR, похожего на включение или выключение переключателей).
    • Он продолжает двигать и переключать переключатели, пока не достигнет конца.

Шаг 4: Окончательный результат (контрольная сумма)

  • Проведя линейку по всему сообщению, у вас останется небольшое число (длиной 32 бита), представляющее исходные данные.
    • Этот номер является своего рода уникальным отпечатком пальца сообщения.
    • Это контрольная сумма CRC-32.

Представленная на странице версия — это вариант CRC-32C, который следует считать предпочтительным вариантом, особенно если вы используете процессор с аппаратным ускорением (SSE 4.2 и более поздние версии) и вам не нужна совместимость с другими вариантами.

У меня есть калькуляторы и для других вариантов:

Поделиться на BlueskyПоделиться на FacebookПоделиться на LinkedInПоделиться на TumblrПоделиться на XПоделиться на LinkedInЗакрепить на Pinterest

Миккель Банг Кристенсен

Об авторе

Миккель Банг Кристенсен
Миккель - создатель и владелец сайта miklix.com. Он имеет более чем 20-летний опыт работы в качестве профессионального программиста/разработчика программного обеспечения и в настоящее время работает на полную ставку в крупной европейской IT-корпорации. Когда он не ведет блог, то тратит свое свободное время на огромное количество интересов, хобби и занятий, что в некоторой степени отражается в разнообразии тем, освещаемых на этом сайте.