Калькулятор Хеш-Коду CRC-32B
Опубліковано: 17 лютого 2025 р. о 18:30:58 UTC
Останнє оновлення: 12 січня 2026 р. о 09:16:09 UTC
CRC-32B Hash Code Calculator
Циклічна перевірка надмірності (CRC) – це код виявлення помилок, який зазвичай використовується для виявлення випадкових змін у необроблених даних. Хоча технічно CRC-32 не є криптографічною хеш-функцією, його часто називають хешем через його здатність створювати вихідний результат фіксованого розміру (32 біти) зі змінного вхідного даних. Версія, представлена на цій сторінці, – це варіант CRC-32B, який насправді є просто особливістю мови PHP, яка перевертає біти (прямий порядок байтів проти прямого порядка байтів у оригінальному CRC-32).
Повна інформація: я не писав конкретну реалізацію хеш-функції, яка використовується на цій сторінці. Це стандартна функція, що входить до складу мови програмування PHP. Я лише створив веб-інтерфейс, щоб зробити його загальнодоступним тут для зручності.
Про алгоритм хешування CRC-32B
Я не математик, але спробую пояснити цю хеш-функцію за допомогою простої аналогії. На відміну від багатьох криптографічних хеш-функцій, це не особливо складний алгоритм, тому, ймовірно, все буде гаразд ;-)
Уявіть, що ви надсилаєте листа поштою, але хвилюєтеся, що він може бути пошкоджений, перш ніж дійде до одержувача. На основі вмісту листа ви обчислюєте контрольну суму CRC-32 і записуєте її на конверті. Коли одержувач отримує листа, він також може обчислити контрольну суму та перевірити, чи відповідає вона тому, що ви написали. Якщо так, то лист не був пошкоджений або змінений під час доставки.
CRC-32 робить це у чотириетапний процес:
Крок 1: Додайте трохи додаткового простору (заповнення)
- CRC додає трохи додаткового місця в кінці повідомлення (як пакувати арахіс у коробку).
- Це допомагає легше виявляти помилки.
Крок 2: Чарівна лінійка (Поліном)
- CRC-32 використовує спеціальну «чарівну лінійку» для вимірювання даних. Уявіть собі цю лінійку як візерунок з горбків та канавок (це поліном, але не хвилюйтеся з приводу цього слова). Найпоширенішою «лінійкою» для CRC-32 є фіксований візерунок.
Крок 3: Переміщення лінійки (процес ділення)
- Тепер CRC пересуває лінійку по повідомленню. У кожній точці вона перевіряє, чи збігаються виступи та канавки. Якщо вони не збігаються, CRC робить позначку (це робиться за допомогою простого XOR, наприклад, перемикання перемикачів). Вона продовжує пересувати та перемикати перемикачі, доки не досягне кінця.
Крок 4: Остаточний результат (контрольна сума)
- Після того, як ви проведете лінійку по всьому повідомленню, у вас залишиться невелике число (довжиною 32 біти), яке представляє вихідні дані. Це число є своєрідним унікальним відбитком пальця для повідомлення. Це контрольна сума CRC-32.
Версія, представлена на сторінці, — це варіант CRC-32B, який здебільшого є особливістю PHP, що змінює порядок бітів (little-endian проти big-endian). Ймовірно, вам слід використовувати цю версію лише тоді, коли вам потрібна сумісність з іншою PHP-програмою, яка її використовує.
У мене також є калькулятори для інших варіантів:
- Посилання
- Посилання
Додаткова література
Якщо вам сподобався цей пост, вам також можуть сподобатися ці пропозиції:
