Kalkulator kodu skrótu CRC-32
Opublikowano: 17 lutego 2025 18:12:06 UTC
Kalkulator kodu skrótu, który wykorzystuje funkcję skrótu CRC-32 (32-bitowa cykliczna kontrola nadmiarowa) do obliczenia kodu skrótu na podstawie wprowadzonego tekstu lub przesłanego pliku.CRC-32 Hash Code Calculator
Cyclic Redundancy Check (CRC) to kod wykrywający błędy powszechnie używany do wykrywania przypadkowych zmian w surowych danych. Chociaż technicznie nie jest to kryptograficzna funkcja skrótu, CRC-32 jest często nazywany skrótem ze względu na jego zdolność do generowania wyjścia o stałym rozmiarze (32 bity) z wejścia o zmiennej długości.
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 CRC-32
Nie jestem matematykiem, ale spróbuję wyjaśnić tę funkcję skrótu za pomocą prostej analogii. W przeciwieństwie do wielu kryptograficznych funkcji skrótu, nie jest to szczególnie skomplikowany algorytm, więc prawdopodobnie będzie OK ;-)
Wyobraź sobie, że wysyłasz list pocztą, ale obawiasz się, że może zostać uszkodzony, zanim dotrze do adresata. Na podstawie zawartości listu obliczasz sumę kontrolną CRC-32 i zapisujesz ją na kopercie. Kiedy adresat otrzyma list, może również obliczyć sumę kontrolną i sprawdzić, czy zgadza się z tym, co napisałeś. Jeśli tak, list nie został uszkodzony ani zmieniony w trakcie przesyłki.
Proces CRC-32 składa się z czterech etapów:
Krok 1: Dodaj trochę dodatkowej przestrzeni (wypełnienie)
- CRC dodaje odrobinę miejsca na końcu wiadomości (jak pakowanie orzeszków ziemnych w pudełku).
- Dzięki temu łatwiej jest wykrywać błędy.
Krok 2: Magiczna linijka (wielomian)
- CRC-32 wykorzystuje specjalną „magiczną linijkę” do pomiaru danych.
- Wyobraź sobie tę linijkę jako wzór wypustek i rowków (to wielomian, ale nie przejmuj się tym słowem).
- Najczęściej stosowaną „linijką” dla CRC-32 jest stały wzór.
Krok 3: Przesuwanie linijki (proces dzielenia)
- Teraz CRC przesuwa linijkę wzdłuż wiadomości.
- W każdym miejscu sprawdza, czy wypustki i rowki są ze sobą zgodne.
- Jeśli nie są zgodne, CRC tworzy notatkę (można to zrobić za pomocą prostej operacji XOR, podobnej do włączania i wyłączania przełączników).
- Przesuwa się i przełącza przełączniki, aż dojdzie do końca.
Krok 4: Wynik końcowy (suma kontrolna)
- Po przesunięciu linijki przez całą wiadomość zostanie Ci niewielka liczba (o długości 32 bitów) reprezentująca oryginalne dane.
- Numer ten stanowi unikalny odcisk palca wiadomości.
- To jest suma kontrolna CRC-32.
Wersja prezentowana na stronie to oryginalna funkcja CRC-32, którą należy stosować w celu uzyskania najlepszej kompatybilności z innymi systemami.
Posiadam również kalkulatory dla innych wariantów: