Miklix

Kalkulator kodu skrótu CRC-32B

Opublikowano: 17 lutego 2025 18:29:34 UTC
Ostatnia aktualizacja: 12 stycznia 2026 09:15:58 UTC

Kalkulator kodu skrótu wykorzystujący funkcję skrótu CRC-32B (32-bitowa cykliczna kontrola nadmiarowa, wariant B) do obliczania 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:

CRC-32B Hash Code Calculator

Cykliczna kontrola nadmiarowa (CRC) to kod detekcji błędów powszechnie używany do wykrywania przypadkowych zmian w surowych danych. Chociaż technicznie rzecz biorąc, CRC-32 nie jest kryptograficzną funkcją skrótu, jest często nazywany skrótem ze względu na możliwość generowania danych wyjściowych o stałym rozmiarze (32 bity) z danych wejściowych o zmiennej długości. Wersja przedstawiona na tej stronie to wariant CRC-32B, który jest w rzeczywistości jedynie osobliwością języka PHP, polegającą na odwracaniu bitów (little-endian kontra big-endian w oryginalnym CRC-32).

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 skrótu CRC-32B

Nie jestem matematykiem, ale postaram się 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 w porządku ;-)

Wyobraź sobie, że wysyłasz list pocztą, ale obawiasz się, że ulegnie uszkodzeniu, zanim dotrze do adresata. Na podstawie zawartości listu obliczasz sumę kontrolną CRC-32 i zapisujesz ją na kopercie. Po otrzymaniu listu odbiorca 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 transportu.

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 do pudełka).
  • 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 wypukłości i rowków (to wielomian, ale nie przejmuj się tym słowem). Najczęściej stosowaną „linijką” w przypadku CRC-32 jest stały wzór.

Krok 3: Przesuwanie linijki (proces dzielenia)

  • Teraz CRC przesuwa linijkę po wiadomości. W każdym miejscu sprawdza, czy wypustki i rowki są wyrównane. Jeśli nie, CRC tworzy notatkę (odbywa się to za pomocą prostej operacji XOR, podobnej do włączania i wyłączania przełączników). Przesuwa linijkę i przełącza przełączniki, aż dotrze do końca.

Krok 4: Wynik końcowy (suma kontrolna)

  • Po przesunięciu linijki wzdłuż całej wiadomości otrzymasz niewielką liczbę (o długości 32 bitów), która reprezentuje oryginalne dane. Liczba ta stanowi swego rodzaju unikalny odcisk palca wiadomości. Jest to suma kontrolna CRC-32.

Wersja prezentowana na stronie to wariant CRC-32B, który jest głównie dziwactwem PHP, polegającym na zamianie kolejności bitów (little-endian vs big-endian). Powinieneś używać tej wersji tylko wtedy, gdy potrzebujesz kompatybilności z inną aplikacją PHP, która jej używa.

Posiadam również kalkulatory dla pozostałych wariantów:

  • Połączyć
  • Połączyć

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.