Калькулятор Хеш-Коду CRC-32C
Опубліковано: 17 лютого 2025 р. о 18:45:23 UTC
Калькулятор хеш-коду, який використовує хеш-функцію CRC-32C (Cyclic Redundancy Check 32 bit, варіант C) для обчислення хеш-коду на основі введення тексту або завантаження файлу.CRC-32C Hash Code Calculator
Циклічна перевірка резервування (CRC) — це код виявлення помилок, який зазвичай використовується для виявлення випадкових змін у необроблених даних. Хоча технічно CRC-32 не є криптографічною хеш-функцією, її часто називають хешем через її здатність виробляти вихід фіксованого розміру (32 біти) з входу змінної довжини. Версія, представлена на цій сторінці, є варіантом CRC-32C, який є новішою, «розумнішою» (краще виявлення помилок) версією, яка часто має апаратне прискорення на сучасних процесорах (через SSE 4.2).
Повна інформація: я не писав конкретну реалізацію хеш-функції, яка використовується на цій сторінці. Це стандартна функція, що входить до складу мови програмування PHP. Я лише створив веб-інтерфейс, щоб зробити його загальнодоступним тут для зручності.
Про алгоритм хешування 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 і новіші) і вам не потрібна сумісність з іншими варіантами.
У мене є калькулятори і для інших варіантів: