Miklix

Калькулятор Хеш-Коду MurmurHash3F

Опубліковано: 18 лютого 2025 р. о 00:28:21 UTC

Калькулятор хеш-коду, який використовує хеш-функцію MurmurHash3F для обчислення хеш-коду на основі введення тексту або завантаження файлу.

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

MurmurHash3F Hash Code Calculator

MurmurHash3 — це некриптографічна хеш-функція, розроблена Остіном Епплбі у 2008 році. Він широко використовується для хешування загального призначення завдяки своїй швидкості, простоті та хорошим властивостям розподілу. Функції MurmurHash особливо ефективні для структур даних на основі хешування, таких як хеш-таблиці, фільтри блума та системи дедуплікації даних.

Варіант, представлений на цій сторінці, - це варіант 3F, який оптимізований для 64-бітних систем. Він створює 128-бітні (16-байтові) хеш-коди, які зазвичай представляються у вигляді 32-значного шістнадцяткового числа.

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


Обчислення нового хеш-коду

Дані, надіслані через цю форму, або файли, завантажені через неї, зберігатимуться на сервері лише стільки часу, скільки буде потрібно для генерації запитуваного хеш-коду. Вони будуть видалені безпосередньо перед тим, як результат буде повернутий у ваш браузер.

Вхідні дані:



Надісланий текст в кодуванні UTF-8. Оскільки хеш-функції працюють з двійковими даними, результат буде відрізнятися від того, якби текст був в іншому кодуванні. Якщо вам потрібно обчислити хеш тексту в конкретному кодуванні, вам слід завантажити файл.



Про алгоритм хешування MurmurHash3F

Я не математик, але спробую пояснити цю хеш-функцію, використовуючи аналогію, зрозумілу моїм колегам-нематематикам. Якщо ви віддаєте перевагу науково правильному, повному математичному поясненню, я впевнений, що ви зможете знайти це деінде ;-)

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

Щось подібне робить і MurmurHash3 з даними. Він бере будь-які дані (текст, числа, файли) і стискає їх до невеликого, фіксованого «відбитка» або хеш-значення. Цей відбиток пальця допомагає комп'ютерам швидко виявляти, сортувати та порівнювати дані без необхідності дивитися на них цілком.

Інша аналогія може бути схожа на випікання торта, а MurmurHash3 — це рецепт перетворення цього торта на маленький кекс (хеш). Це буде триетапний процес:

Крок 1: Подрібнюємо на шматки (розбиваючи дані)

  • По-перше, MurmurHash3 розділяє ваші дані на рівні шматки, наприклад, нарізає торт на рівні квадрати.

Крок 2: Міксуйте як божевільний (змішуючи шматки)

  • Кожен шматочок проходить дикий процес змішування:
    • Перегортання: Подібно до перевертання млинця, воно переставляє шматочки.
    • Перемішування: додає випадкові інгредієнти (математичні операції) для змішування.
    • Розтискання: притискає дані разом, щоб переконатися, що жоден оригінальний шматок не виділяється.

Крок 3: Фінальний дегустаційний тест (доопрацювання)

  • Після змішування всіх шматків, MurmurHash3 робить останнє перемішування, щоб гарантувати, що навіть найменша крихта зміни в оригінальних даних повністю змінить смак (хеш).

Поділитися на BlueskyПоділіться на FacebookПоділіться на LinkedInПоділіться на TumblrПоділитися на XПоділіться на LinkedInЗакріпити на Pinterest

Міккель Банг Крістенсен

Про автора

Міккель Банг Крістенсен
Міккель - творець і власник сайту miklix.com. Він має понад 20 років досвіду роботи професійним програмістом/розробником програмного забезпечення і наразі працює на повну ставку у великій європейській ІТ-корпорації. У вільний від ведення блогу час він присвячує різноманітним інтересам, хобі та захопленням, що певною мірою відображається на різноманітності тем, які висвітлюються на цьому сайті.