Kalkulator kodu skrótu MurmurHash3C
Opublikowano: 18 lutego 2025 00:34:16 UTC
Kalkulator kodu skrótu, który wykorzystuje funkcję skrótu MurmurHash3C do obliczenia kodu skrótu na podstawie wprowadzonego tekstu lub przesłanego pliku.MurmurHash3C Hash Code Calculator
MurmurHash3 to niekryptograficzna funkcja skrótu zaprojektowana przez Austina Appleby'ego w 2008 r. Jest szeroko stosowana do ogólnego skrótu 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 skrótach, takich jak tabele skrótów, filtry Blooma i systemy deduplikacji danych.
Wariant przedstawiony na tej stronie to wariant 3C, który jest zoptymalizowany dla systemów 32-bitowych, tak samo jak wariant 3A. Jednak w przeciwieństwie do wariantu 3A, generuje 128-bitowe (16-bajtowe) kody haszujące, zwykle 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 skrótu MurmurHash3C
Nie jestem matematykiem, ale spróbuję wyjaśnić tę funkcję haszującą, używając analogii, którą moi koledzy niematematycy mogą zrozumieć. Jeśli wolisz naukowo poprawne, pełne matematyczne wyjaśnienie, jestem pewien, że znajdziesz je gdzie indziej ;-)
Teraz wyobraź sobie, że masz duże pudełko klocków LEGO. Za każdym razem, gdy układasz je w określony sposób, robisz zdjęcie. Bez względu na to, jak duże lub kolorowe jest ułożenie, aparat zawsze daje ci 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. Przyjmuje dowolny rodzaj danych (tekst, liczby, pliki) i zmniejsza je do małego, stałego „odcisku palca” lub wartości skrótu. Ten odcisk palca pomaga komputerom szybko identyfikować, sortować i porównywać dane bez konieczności patrzenia na całość.
Inną analogią byłoby pieczenie ciasta, a MurmurHash3 to przepis na zamianę tego ciasta w małą babeczkę (hash). Byłby to proces składający się z trzech etapów:
Krok 1: Pokrój na kawałki (podział 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 miksowania:
- Odwracanie: Podobnie jak odwracanie naleśnika, kawałki układają się inaczej.
- Mieszanie: Dodawanie losowych składników (operacji matematycznych) w celu wymieszania składników.
- Spłaszczanie: ściska dane, aby upewnić się, że żaden oryginalny fragment nie wystaje poza obrys.
Krok 3: Ostateczny test smaku (finalizacja)
- Po wymieszaniu wszystkich fragmentów MurmurHash3 miesza je po raz ostatni, aby mieć pewność, że nawet najmniejsza zmiana w oryginalnych danych całkowicie zmieni smak (hasz).