Kalkulator kodu skrótu MurmurHash3F
Opublikowano: 18 lutego 2025 00:28:08 UTC
Ostatnia aktualizacja: 12 stycznia 2026 13:31:22 UTC
MurmurHash3F Hash Code Calculator
MurmurHash3 to niekryptograficzna funkcja skrótu opracowana przez Austina Appleby'ego w 2008 roku. Jest szeroko stosowana do haszowania ogólnego przeznaczenia ze względu na swoją szybkość, prostotę i dobre właściwości dystrybucyjne. Funkcje MurmurHash są szczególnie skuteczne w przypadku struktur danych opartych na haszach, takich jak tablice skrótów, filtry Blooma i systemy deduplikacji danych.
Wariant prezentowany na tej stronie to wariant 3F, zoptymalizowany dla systemów 64-bitowych. Generuje on 128-bitowe (16-bajtowe) kody skrótu, zazwyczaj reprezentowane jako 32-cyfrowa liczba szesnastkowa.
Pełne ujawnienie: nie napisałem konkretnej implementacji funkcji hash używanej na tej stronie. Jest to standardowa funkcja dołączona do języka programowania PHP. Stworzyłem jedynie interfejs sieciowy, aby udostępnić go tutaj publicznie dla wygody.
O algorytmie haszującym MurmurHash3F
Nie jestem matematykiem, ale postaram się wyjaśnić tę funkcję skrótu za pomocą analogii zrozumiałej dla moich kolegów niebędących matematykami. Jeśli wolisz naukowo poprawne, matematyczne wyjaśnienie, na pewno znajdziesz je gdzie indziej ;-)
Wyobraź sobie, że masz duże pudełko z klockami LEGO. Za każdym razem, gdy układasz je w określony sposób, robisz zdjęcie. Niezależnie od wielkości i koloru ułożenia, aparat zawsze robi małe zdjęcie o stałym rozmiarze. To zdjęcie przedstawia Twoje dzieło LEGO, ale w kompaktowej formie.
MurmurHash3 robi coś podobnego z danymi. Przechwytuje dowolny rodzaj danych (tekst, liczby, pliki) i redukuje je do małej, stałej wartości „odcisku palca” lub skrótu. Ten odcisk palca pomaga komputerom szybko identyfikować, sortować i porównywać dane bez konieczności przeglądania całości.
Inną analogią byłoby pieczenie ciasta, a MurmurHash3 to przepis na przekształcenie tego ciasta w małą babeczkę (hasz). Byłby to proces składający się z trzech etapów:
Krok 1: Podzielenie danych na części (rozbicie danych)
- Najpierw MurmurHash3 dzieli dane na równe kawałki, niczym ciasto krojone na równe kwadraty.
Krok 2: Mieszaj jak szalony (mieszanie kawałków)
- Każdy element przechodzi przez szalony proces mieszania:Przewracanie: Podobnie jak przewracanie naleśnika, kawałki zmieniają swoje położenie.Mieszanie: Dodaje losowe składniki (operacje matematyczne), aby wymieszać składniki.Ściskanie: Ściska dane, aby upewnić się, że żaden oryginalny element nie będzie się wyróżniał.
Krok 3: Ostateczny test smaku (finalizacja)
- Po wymieszaniu wszystkich fragmentów MurmurHash3 miesza je ostatni raz, aby mieć pewność, że nawet najmniejsza zmiana w oryginalnych danych całkowicie zmieni ich smak (hash).
Dalsza lektura
Jeśli podobał Ci się ten wpis, mogą Cię zainteresować również poniższe sugestie:
