Fowler-Noll-Vo FNV1-32 Калькулятор Хеш-Коду
Опубліковано: 18 лютого 2025 р. о 00:16:10 UTC
Останнє оновлення: 12 січня 2026 р. о 13:29:24 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
32-бітна хеш-функція FNV-1 є частиною сімейства хеш-функцій Фаулера-Нолла-Во (FNV), розроблених для швидкого хешування зі збереженням гарного розподілу хеш-значень. Вона зазвичай використовується в таких додатках, як хеш-таблиці, контрольні суми та пошук даних. Вона створює 32-бітний (4-байтовий) хеш-код, часто представлений як 8-значне шістнадцяткове число.
Повна інформація: я не писав конкретну реалізацію хеш-функції, яка використовується на цій сторінці. Це стандартна функція, що входить до складу мови програмування PHP. Я лише створив веб-інтерфейс, щоб зробити його загальнодоступним тут для зручності.
Про 32-бітний алгоритм хешування Фаулера-Нолла-Во FNV-1
Я не математик, але спробую пояснити цю хеш-функцію за допомогою аналогії, яку можуть зрозуміти мої колеги-нематематики. Якщо ви віддаєте перевагу науково правильному, але страшному математичному поясненню, я впевнений, що ви знайдете його деінде ;-)
Спочатку давайте уявимо алгоритм FNV-1 як рецепт для приготування особливого смузі. Кожен інгредієнт, який ви додаєте (наприклад, фрукти, молоко чи мед), представляє собою фрагмент даних – наприклад, літери, цифри або навіть цілий файл.
Тепер мета полягає в тому, щоб змішати ці інгредієнти дуже специфічним чином, щоб навіть найменша зміна в рецепті (наприклад, додавання однієї додаткової чорниці) зробила смак смузі зовсім іншим. Саме так працюють хеш-функції — вони створюють унікальний «смак» (або хеш-значення) для кожного унікального набору інгредієнтів (або вхідних даних).
Алгоритм FNV-1 виконує це багатоетапним процесом:
Крок 1: Почніть з бази (зсувної бази)
Уявіть собі це як наливання спеціальної основи для смузі у ваш блендер. Ця основа завжди однакова, незалежно від того, які інгредієнти ви додаєте. У FNV-1 це називається «зміщеною основою» – просто химерне початкове число.
Крок 2: Додавання інгредієнтів по одному (обробка даних)
Тепер ви починаєте додавати інгредієнти, по одному – скажімо, полуницю, потім банан, потім трохи меду. Кожен з них представляє байт даних.
Крок 3: Змішування з секретним множником (FNV Prime)
Після додавання кожного інгредієнта ви натискаєте кнопку змішування, але ось у чому особливість: блендер множить усе на секретне «магічне число», яке називається простим числом FNV. Це допомагає добре перемішати все.
Крок 4: Додайте трохи магії (операція XOR)
Перш ніж додавати наступний інгредієнт, ви посипаєте його невеликою кількістю чарівного пилу (це операція XOR). Це як несподівано змінити смак, гарантуючи, що навіть невеликі зміни матимуть великий ефект.
Крок 5: Повторюйте, доки не буде готово
Ви продовжуєте змішувати та посипати чарівною сумішшю після кожного нового інгредієнта, поки не обробите все.
Крок 6: Фінальний смузі (хеш-значення)
Коли ви закінчите, ви наливаєте смузі. Кінцевий смак (хеш-значення) унікальний для саме цієї комбінації інгредієнтів. Якби ви додали хоча б одну зайву чорницю, смак був би зовсім іншим.
Версія, представлена тут, є оригінальною 32-бітною версією FNV-1. Також доступна покращена 32-бітна версія FNV-1a: Посилання
Додаткова література
Якщо вам сподобався цей пост, вам також можуть сподобатися ці пропозиції:
