Miklix

MurmurHash3A калкулатор на хеш код

Публикувано: 18 февруари 2025 г. в 0:38:58 ч. UTC

Калкулатор на хеш код, който използва хеш функцията MurmurHash3A за изчисляване на хеш код въз основа на въвеждане на текст или качване на файл.

Тази страница е машинно преведена от английски език, за да бъде достъпна за възможно най-много хора. За съжаление машинният превод все още не е съвършена технология, така че могат да възникнат грешки. Ако предпочитате, можете да видите оригиналната версия на английски език тук:

MurmurHash3A Hash Code Calculator

MurmurHash3 е некриптографска хеш функция, проектирана от Austin Appleby през 2008 г. Тя се използва широко за хеширане с общо предназначение поради своята скорост, простота и добри свойства за разпространение. Функциите MurmurHash са особено ефективни за базирани на хеш структури от данни като хеш таблици, филтри за разцвет и системи за дедупликация на данни.

Вариантът, представен на тази страница, е вариантът 3A, който е оптимизиран за 32-битови системи. Той произвежда 32 бита (4 байта) хеш кодове, обикновено представени като 8-цифрено шестнадесетично число.

Пълно разкритие: не съм написал конкретната реализация на хеш функцията, използвана на тази страница. Това е стандартна функция, включена в езика за програмиране PHP. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.


Изчисляване на нов хеш код

Предоставените данни или файловете, качени чрез този формуляр, се съхраняват на сървъра само толкова дълго, колкото е необходимо за генериране на искания хеш код. Те ще бъдат изтрити непосредствено преди резултатът да бъде върнат на вашия браузър.

Входни данни:



Подаденият текст е кодиран в UTF-8. Тъй като хеш-функциите работят с двоични данни, резултатът ще бъде различен от този, ако текстът е в друго кодиране. Ако трябва да изчислите хеш на текст в определено кодиране, вместо това трябва да качите файл.



Относно хеш алгоритъма MurmurHash3A

Не съм математик, но ще се опитам да обясня тази хеш функция, като използвам аналогия, която моите колеги не-математици могат да разберат. Ако предпочитате научно правилно, пълно математическо обяснение, сигурен съм, че можете да го намерите другаде ;-)

Сега си представете, че имате голяма кутия LEGO тухли. Всеки път, когато ги подредите по определен начин, правите снимка. Без значение колко голяма или цветна е подредбата, камерата винаги ви дава малка снимка с фиксиран размер. Тази снимка представлява вашето LEGO творение, но в компактна форма.

MurmurHash3 прави нещо подобно с данни. Той взема всякакъв вид данни (текст, числа, файлове) и ги свива до малък, фиксиран "пръстов отпечатък" или хеш стойност. Този пръстов отпечатък помага на компютрите бързо да идентифицират, сортират и сравняват данни, без да е необходимо да разглеждат всичко.

Друга аналогия би била като печене на торта и MurmurHash3 е рецептата за превръщането на тази торта в малък кекс (хашиша). Това би бил процес от три стъпки:

Стъпка 1: Нарязване на парчета (Разбиване на данните)

  • Първо, MurmurHash3 нарязва вашите данни на равни парчета, като нарязване на тортата на равни квадрати.

Стъпка 2: Смесете като луди (смесване на парчетата)

  • Всяко парче преминава през див процес на смесване:
    • Обръщане: Като обръщане на палачинка, това пренарежда парчетата.
    • Разбъркване: Добавя произволни съставки (математически операции), за да смеси нещата.
    • Мачкане: Притиска данните заедно, за да се увери, че нито едно оригинално парче не изпъква.

Стъпка 3: Краен тест за вкус (финализиране)

  • След като смеси всички парчета, MurmurHash3 прави едно последно разбъркване, за да гарантира, че дори и най-малката промяна в оригиналните данни напълно ще промени вкуса (хеш).
Споделете в BlueskyСподелете във FacebookСподелете в LinkedInСподелете в TumblrСподелете в XСподелете в LinkedInЗакачи в Пинтерест

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

За автора

Микел Банг Кристенсен
Микел е създател и собственик на сайта miklix.com. Той има над 20 години опит като професионален компютърен програмист/разработчик на софтуер и в момента работи на пълен работен ден в голяма европейска ИТ корпорация. Когато не пише в блога, той прекарва свободното си време в широк спектър от интереси, хобита и дейности, които до известна степен могат да бъдат отразени в разнообразието от теми, обхванати в този уебсайт.