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