Miklix

Kalkulator kodu skrótu Fowler-Noll-Vo FNV1a-32

Opublikowano: 18 lutego 2025 00:09:22 UTC
Ostatnia aktualizacja: 12 stycznia 2026 13:28:23 UTC

Kalkulator kodu skrótu wykorzystujący 32-bitową funkcję skrótu Fowlera-Nolla-Vo 1a (FNV1a-32) 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:

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

32-bitowa funkcja skrótu FNV-1a należy do rodziny funkcji skrótu Fowlera-Nolla-Vo (FNV), zaprojektowanych do szybkiego haszowania przy jednoczesnym zachowaniu dobrego rozkładu wartości skrótu. Jest powszechnie stosowana w aplikacjach takich jak tablice skrótów, sumy kontrolne i wyszukiwanie danych. Generuje 32-bitowy (4 bajty) kod skrótu, często reprezentowany jako 8-cyfrowa liczba szesnastkowa.

Wersja FNV-1a jest udoskonaloną wersją oryginalnej wersji FNV-1, zapewniającą lepsze bezpieczeństwo.

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 32-bitowym algorytmie skrótu Fowler-Noll-Vo FNV-1a

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, matematycznie przerażające wyjaśnienie, na pewno znajdziesz je gdzie indziej ;-)

Po pierwsze, wyobraźmy sobie algorytm FNV-1 jak przepis na specjalny koktajl. Każdy dodany składnik (np. owoce, mleko czy miód) reprezentuje fragment danych – na przykład litery, cyfry, a nawet cały plik.

Teraz celem jest wymieszanie tych składników w bardzo specyficzny sposób, tak aby nawet najmniejsza zmiana w przepisie (np. dodanie jednej dodatkowej jagody) sprawiła, że smoothie będzie miało zupełnie inny smak. Tak właśnie działają funkcje skrótu – tworzą unikalny „smak” (lub wartość skrótu) dla każdego unikalnego zestawu składników (lub danych wejściowych).

Algorytm FNV-1 realizuje to zadanie w ramach procesu wieloetapowego:

Krok 1: Zacznij od bazy (bazy offsetowej)

Wyobraź sobie, że wlewasz specjalną bazę do smoothie do blendera. Ta baza jest zawsze taka sama, niezależnie od dodanych składników. W FNV-1 nazywa się to „offsetem bazowym” – to po prostu wymyślna liczba początkowa.

Krok 2: Dodawaj składniki jeden po drugim (przetwarzanie danych)

Teraz zaczynasz dodawać składniki, po jednym na raz – powiedzmy truskawkę, potem banana, a potem trochę miodu. Każdy z nich reprezentuje jeden bajt danych.

Krok 3: Połącz z tajnym mnożnikiem (FNV Prime)

Po dodaniu każdego składnika naciskasz przycisk miksowania, ale jest pewien haczyk: blender mnoży wszystko przez sekretną „magiczną liczbę” zwaną liczbą początkową FNV. To pomaga naprawdę dobrze wymieszać składniki.

Krok 4: Dodaj odrobinę magii (operacja XOR)

Przed dodaniem kolejnego składnika posypujemy odrobiną magicznego pyłu (to operacja XOR). To jak nieoczekiwana zmiana smaku, dzięki której nawet drobne zmiany robią dużą różnicę.

Krok 5: Powtarzaj, aż do zakończenia

Kontynuujesz mieszanie i posypywanie magią po każdym nowym składniku, aż do momentu, gdy zmiksujesz wszystko.

Krok 6: Ostateczny koktajl (wartość skrótu)

Po zakończeniu wylewasz smoothie. Ostateczny smak (wartość haszująca) jest unikalny dla tej konkretnej kombinacji składników. Gdybyś dodał choć jedną dodatkową jagodę, smakowałby zupełnie inaczej.

Prezentowana tutaj wersja to ulepszona wersja FNV-1a 32-bitowa. Jeśli potrzebujesz wersji oryginalnej, mam też do niej kalkulator: Link

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.