Miklix

Kalkulator kodu skrótu MurmurHash3F

Opublikowano: 18 lutego 2025 00:28:08 UTC
Ostatnia aktualizacja: 12 stycznia 2026 13:31:22 UTC

Kalkulator kodu skrótu wykorzystujący funkcję skrótu MurmurHash3F do obliczenia kodu skrótu na podstawie wprowadzonego tekstu lub przesłanego pliku.

Ta strona została przetłumaczona maszynowo z języka angielskiego, aby była dostępna dla jak największej liczby osób. Niestety, tłumaczenie maszynowe nie jest jeszcze dopracowaną technologią, więc mogą wystąpić błędy. Jeśli wolisz, możesz wyświetlić oryginalną angielską wersję tutaj:

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.


Obliczanie nowego kodu skrótu

Dane przesłane lub pliki przesłane za pośrednictwem tego formularza będą przechowywane na serwerze tylko tak długo, jak będzie to konieczne do wygenerowania żądanego kodu skrótu. Zostaną one usunięte bezpośrednio przed zwróceniem wyniku do przeglądarki użytkownika.

Dane wejściowe:



Przesłany tekst jest zakodowany w UTF-8. Ponieważ funkcje skrótu działają na danych binarnych, wynik będzie inny niż w przypadku tekstu w innym kodowaniu. Jeśli chcesz obliczyć skrót tekstu w określonym kodowaniu, powinieneś przesłać plik.



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:


Udostępnij na BlueskyUdostępnij na FacebookuUdostępnij na LinkedInUdostępnij na TumblrUdostępnij na XUdostępnij na LinkedInPrzypnij na Pintereście

Mikkel Christensen

O autorze

Mikkel Christensen
Mikkel jest twórcą i właścicielem miklix.com. Ma ponad 20-letnie doświadczenie jako profesjonalny programista komputerowy / programista oprogramowania i jest obecnie zatrudniony na pełny etat w dużej europejskiej korporacji IT. Kiedy nie bloguje, poświęca swój wolny czas na szeroki wachlarz zainteresowań, hobby i aktywności, co może w pewnym stopniu znaleźć odzwierciedlenie w różnorodności tematów poruszanych na tej stronie.