Miklix

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

Опубліковано: 17 лютого 2025 р. о 18:45:23 UTC
Останнє оновлення: 12 січня 2026 р. о 11:37:31 UTC

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

Ця сторінка була перекладена з англійської мови машинним перекладом, щоб зробити її доступною для якомога більшої кількості людей. На жаль, машинний переклад ще не є досконалою технологією, тому можуть траплятися помилки. Якщо ви бажаєте, ви можете переглянути оригінальну англійську версію тут:

CRC-32C Hash Code Calculator

Циклічна перевірка надлишковості (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 років досвіду роботи професійним програмістом/розробником програмного забезпечення і наразі працює на повну ставку у великій європейській ІТ-корпорації. У вільний від ведення блогу час він присвячує різноманітним інтересам, хобі та захопленням, що певною мірою відображається на різноманітності тем, які висвітлюються на цьому сайті.