Skip to content

Kalkulator sumy kontrolnej CRC

Wklej hex albo tekst i policz naraz wszystkie 63 warianty CRC-8, CRC-16 i CRC-32. Suma kontrolna z urządzenia się nie zgadza? Wpisz ją, a narzędzie wskaże wariant: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Wszystko lokalnie.

Bez śledzenia Działa w przeglądarce Bezpłatne
Wszystko liczy się lokalnie w przeglądarce — wklejone dane nie opuszczają tego urządzenia.
Wypróbuj

Wszystkie 63 warianty

Każdy wiersz przelicza się podczas pisania.
Wariant Wynik Poly Init RefIn/RefOut XorOut
CRC-8
CRC-8/AUTOSAR 0x2F 0xFF false / false 0xFF
CRC-8/BLUETOOTH 0xA7 0x00 true / true 0x00
CRC-8/CDMA2000 0x9B 0xFF false / false 0x00
CRC-8/DARC 0x39 0x00 true / true 0x00
CRC-8/DVB-S2 0xD5 0x00 false / false 0x00
CRC-8/GSM-A 0x1D 0x00 false / false 0x00
CRC-8/GSM-B 0x49 0x00 false / false 0xFF
CRC-8/HITAG 0x1D 0xFF false / false 0x00
CRC-8/I-432-1 CRC-8/ITU 0x07 0x00 false / false 0x55
CRC-8/I-CODE 0x1D 0xFD false / false 0x00
CRC-8/LTE 0x9B 0x00 false / false 0x00
CRC-8/MAXIM-DOW CRC-8/MAXIM · DOW-CRC 0x31 0x00 true / true 0x00
CRC-8/MIFARE-MAD 0x1D 0xC7 false / false 0x00
CRC-8/NRSC-5 0x31 0xFF false / false 0x00
CRC-8/OPENSAFETY 0x2F 0x00 false / false 0x00
CRC-8/ROHC 0x07 0xFF true / true 0x00
CRC-8/SAE-J1850 CRC-8/J1850 0x1D 0xFF false / false 0xFF
CRC-8/SMBUS CRC-8 0x07 0x00 false / false 0x00
CRC-8/TECH-3250 CRC-8/AES · CRC-8/EBU 0x1D 0xFF true / true 0x00
CRC-8/WCDMA 0x9B 0x00 true / true 0x00
CRC-16
CRC-16/ARC CRC-16 · CRC-16/IBM · CRC-16/LHA 0x8005 0x0000 true / true 0x0000
CRC-16/CDMA2000 0xC867 0xFFFF false / false 0x0000
CRC-16/CMS 0x8005 0xFFFF false / false 0x0000
CRC-16/DDS-110 0x8005 0x800D false / false 0x0000
CRC-16/DECT-R R-CRC-16 0x0589 0x0000 false / false 0x0001
CRC-16/DECT-X X-CRC-16 0x0589 0x0000 false / false 0x0000
CRC-16/DNP 0x3D65 0x0000 true / true 0xFFFF
CRC-16/EN-13757 0x3D65 0x0000 false / false 0xFFFF
CRC-16/GENIBUS CRC-16/DARC · CRC-16/EPC · CRC-16/EPC-C1G2 · CRC-16/I-CODE 0x1021 0xFFFF false / false 0xFFFF
CRC-16/GSM 0x1021 0x0000 false / false 0xFFFF
CRC-16/IBM-3740 CRC-16/CCITT-FALSE · CRC-16/AUTOSAR 0x1021 0xFFFF false / false 0x0000
CRC-16/IBM-SDLC CRC-16/X-25 · CRC-16/X25 · CRC-16/ISO-HDLC · CRC-B · X-25 0x1021 0xFFFF true / true 0xFFFF
CRC-16/ISO-IEC-14443-3-A CRC-A 0x1021 0xC6C6 true / true 0x0000
CRC-16/KERMIT CRC-16/CCITT · CRC-16/CCITT-TRUE · CRC-16/V-41-LSB · CRC-CCITT 0x1021 0x0000 true / true 0x0000
CRC-16/LJ1200 0x6F63 0x0000 false / false 0x0000
CRC-16/M17 0x5935 0xFFFF false / false 0x0000
CRC-16/MAXIM-DOW CRC-16/MAXIM 0x8005 0x0000 true / true 0xFFFF
CRC-16/MCRF4XX 0x1021 0xFFFF true / true 0x0000
CRC-16/MODBUS 0x8005 0xFFFF true / true 0x0000
CRC-16/NRSC-5 0x080B 0xFFFF true / true 0x0000
CRC-16/OPENSAFETY-A 0x5935 0x0000 false / false 0x0000
CRC-16/OPENSAFETY-B 0x755B 0x0000 false / false 0x0000
CRC-16/PROFIBUS CRC-16/IEC-61158-2 0x1DCF 0xFFFF false / false 0xFFFF
CRC-16/RIELLO 0x1021 0xB2AA true / true 0x0000
CRC-16/SPI-FUJITSU CRC-16/AUG-CCITT 0x1021 0x1D0F false / false 0x0000
CRC-16/T10-DIF 0x8BB7 0x0000 false / false 0x0000
CRC-16/TELEDISK 0xA097 0x0000 false / false 0x0000
CRC-16/TMS37157 0x1021 0x89EC true / true 0x0000
CRC-16/UMTS CRC-16/BUYPASS · CRC-16/VERIFONE 0x8005 0x0000 false / false 0x0000
CRC-16/USB 0x8005 0xFFFF true / true 0xFFFF
CRC-16/XMODEM CRC-16/ACORN · CRC-16/LTE · CRC-16/V-41-MSB · ZMODEM 0x1021 0x0000 false / false 0x0000
CRC-32
CRC-32/AIXM CRC-32Q 0x814141AB 0x00000000 false / false 0x00000000
CRC-32/AUTOSAR 0xF4ACFB13 0xFFFFFFFF true / true 0xFFFFFFFF
CRC-32/BASE91-D CRC-32D 0xA833982B 0xFFFFFFFF true / true 0xFFFFFFFF
CRC-32/BZIP2 CRC-32/AAL5 · CRC-32/DECT-B · B-CRC-32 0x04C11DB7 0xFFFFFFFF false / false 0xFFFFFFFF
CRC-32/CD-ROM-EDC 0x8001801B 0x00000000 true / true 0x00000000
CRC-32/CKSUM CRC-32/POSIX 0x04C11DB7 0x00000000 false / false 0xFFFFFFFF
CRC-32/ISCSI CRC-32C · CRC-32/BASE91-C · CRC-32/CASTAGNOLI · CRC-32/INTERLAKEN 0x1EDC6F41 0xFFFFFFFF true / true 0xFFFFFFFF
CRC-32/ISO-HDLC CRC-32 · CRC-32/ADCCP · CRC-32/V-42 · CRC-32/XZ · PKZIP 0x04C11DB7 0xFFFFFFFF true / true 0xFFFFFFFF
CRC-32/JAMCRC 0x04C11DB7 0xFFFFFFFF true / true 0x00000000
CRC-32/MEF 0x741B8CD7 0xFFFFFFFF true / true 0x00000000
CRC-32/MPEG-2 0x04C11DB7 0xFFFFFFFF false / false 0x00000000
CRC-32/XFER 0x000000AF 0x00000000 false / false 0x00000000
Parametry własne

Przydaje się, gdy dokumentacja urządzenia podaje wielomian spoza powyższej tabeli.

Wynik
Wszystkie 63 zestawy parametrów wariantów są w zestawie testów porównywane z opublikowanymi katalogowymi wartościami kontrolnymi, a CRC-32/ISO-HDLC dodatkowo z wbudowaną w Node funkcją zlib.crc32 jako niezależnym wzorcem. — Zespół Go Tools · Sep 6, 2026

Zbudowane i zweryfikowane przez zespół inżynierski Go Tools.

Szybkie odpowiedzi

CRC-32 dla „123456789”

0xCBF43926 0xCBF43926 dla CRC-32/ISO-HDLC — wariantu, którego używają ZIP, PNG, Ethernet i gzip.

CRC-16/MODBUS dla „123456789”

0x4B37 0x4B37, przy poly 0x8005, init 0xFFFF, odwróceniu bitów na wejściu i na wyjściu, bez końcowego XOR-a.

CRC-16/CCITT-FALSE dla „123456789”

0x29B1 0x29B1. Formalna nazwa katalogowa to CRC-16/IBM-3740: poly 0x1021, init 0xFFFF, bez odwracania bitów.

Ile jest wariantów CRC?

63 Ten kalkulator obejmuje 63 skatalogowane warianty: 20 o szerokości 8, 31 o szerokości 16 i 12 o szerokości 32.

Czym jest CRC?

Cykliczny kod nadmiarowy traktuje blok danych jak współczynniki bardzo długiego wielomianu binarnego, dzieli go w arytmetyce modulo 2 przez ustalony wielomian generujący i zachowuje resztę. Ta reszta jest sumą kontrolną. Konstrukcja jest popularna, bo dzielenie sprowadza się do przesunięć i operacji XOR, co w sprzęcie kosztuje niemal nic, a algebra daje twarde gwarancje zamiast statystycznej nadziei: dobrze dobrany wielomian 16-bitowy wykrywa każdy błąd pojedynczego bitu, każdy błąd podwójnego bitu w użytecznym zakresie długości bloku, każdą nieparzystą liczbę przekłamanych bitów oraz każdą serię 16 lub mniej kolejnych przekłamanych bitów.

W praktyce CRC bywa mylące dlatego, że wielomian jest tylko jednym z sześciu parametrów. Dwie implementacje mogą zgadzać się co do wielomianu i mimo to różnić się w każdym wyniku, bo dzieli je wartość początkowa rejestru, to, czy bajty wejściowe i rejestr wyjściowy mają odwróconą kolejność bitów, oraz stała XOR-owana z wartością końcową. Wariant CRC to cały ten zestaw parametrów, a nie sam wielomian — dlatego nazwa taka jak „CRC-16” praktycznie nic nie identyfikuje i dlatego ta strona pokazuje obok każdego wyniku wielomian, wartość początkową, obie flagi odwrócenia i końcowy XOR, a szerokość służy za nagłówek grupy.

Jedno zastrzeżenie, którego tabela nie pokaże: wielomian 16-bitowy wykrywa każdą nieparzystą liczbę przekłamanych bitów tylko wtedy, gdy dzieli go x+1. Spełniają to dwa, które napotkasz najczęściej — 0x1021 i 0x8005 — ale nie wszystkie: CRC-16/T10-DIF i CRC-16/PROFIBUS należą do wyjątków.

// CRC-16/MODBUS: poly=0x8005, init=0xFFFF, refin/refout=true, xorout=0x0000
// Written in the reflected form, so the polynomial appears bit-reversed as 0xA001.
function crc16Modbus(bytes) {
  let crc = 0xffff;
  for (const byte of bytes) {
    crc ^= byte;
    for (let i = 0; i < 8; i++) {
      crc = crc & 1 ? (crc >>> 1) ^ 0xa001 : crc >>> 1;
    }
  }
  return crc;
}

crc16Modbus([0x01, 0x03, 0x00, 0x00, 0x00, 0x0a]); // 0xCDC5
// On the wire Modbus RTU sends the low byte first: ... 0x0A 0xC5 0xCD

Co potrafi ten kalkulator

Wszystkie 63 warianty naraz

CRC-8, CRC-16 i CRC-32 przeliczają się razem podczas pisania. Nie trzeba niczego zgadywać na liście rozwijanej, zanim cokolwiek się pokaże.

Wyszukiwanie wsteczne

Wystarczy wpisać otrzymaną sumę kontrolną, a warianty, które ją dają, zostaną podświetlone — identyfikacja nieznanego algorytmu zajmuje jeden krok zamiast dwudziestu.

Nazwy formalne obok nazw z instrukcji

Każdy wiersz podaje nazwę z katalogu RevEng oraz aliasy używane w terenie: CCITT-FALSE, CRC-16/IBM, CRC-32C, X-25 i pozostałe.

Pełna tabela parametrów

Wielomian, wartość początkowa, obie flagi odwrócenia bitów i końcowy XOR stoją obok każdego wyniku, więc dopasowanie można zweryfikować względem specyfikacji.

Parametry własne

Szerokość, wielomian, wartość początkowa, odwrócenia bitów i końcowy XOR są w pełni edytowalne — dla wielomianów, które nigdy nie trafiły do żadnego katalogu.

Działa całkowicie offline

Obliczenia wykonują się w przeglądarce. Produkcyjne ramki i obrazy firmware'u nie opuszczają maszyny.

Przykłady obliczeń

Wzorcowa wartość kontrolna z katalogu

123456789
CRC-32/ISO-HDLC = 0xCBF43926, CRC-16/MODBUS = 0x4B37, CRC-8/SMBUS = 0xF4

Każdy wariant CRC w katalogu RevEng publikuje swój wynik dla ciągu ASCII 123456789. To czyni z tego wejścia standardowy autotest: jeśli biblioteka nie zgadza się z tutejszą tabelą, to biblioteka jest błędna.

Ramka zapytania Modbus RTU

01 03 00 00 00 0A
CRC-16/MODBUS = 0xCDC5

Odczyt rejestrów przechowujących z urządzenia podrzędnego nr 1. Modbus RTU dokleja CRC młodszym bajtem do przodu, więc na łączu ta ramka idzie jako 01 03 00 00 00 0A C5 CD — i właśnie ta zamiana odpowiada za sporą część sum kontrolnych, których nikt nie potrafi odtworzyć.

Te same bajty, cztery odpowiedzi CRC-16

DEADBEEF
MODBUS = 0xC19B, CCITT-FALSE = 0x4097, XMODEM = 0xC457, KERMIT = 0x1915

Wczytane w trybie Hex, a więc cztery bajty, a nie osiem znaków tekstu. Cztery najbardziej znane warianty CRC-16 dają dla nich zupełnie niepowiązane wyniki. Nic się nie zepsuło: różnią się wartością początkową, odwróceniem bitów i końcowym XOR-em, a nie poprawnością.

Identyfikacja wariantu z odpowiedzi urządzenia

123456789 z wartością oczekiwaną 0x29B1
CRC-16/IBM-3740 (w instrukcji urządzenia może figurować jako CRC-16/CCITT-FALSE)

To jest ten przypadek, dla którego kalkulator powstał. Dane są, jest też suma kontrolna policzona przez kogoś innego, brakuje tylko nazwy wariantu — szuka się więc zestawu parametrów, który ją odtwarza.

Jak korzystać z kalkulatora CRC

  1. 1

    Wybór trybu: tekst albo hex

    Ramki protokołów są prawie zawsze szesnastkowe. Tryb tekstowy przydaje się tylko wtedy, gdy sumę kontrolną liczy się z dosłownego ciągu znaków, jak wartość autotestu 123456789.

  2. 2

    Wklejenie danych

    W trybie szesnastkowym separatory są ignorowane, więc 01 03 00 00 00 0A, 0x01 0x03 oraz 010300 00000A zostaną przyjęte tak samo.

  3. 3

    Odczyt potrzebnego wariantu

    Tabela jest pogrupowana według szerokości. Nazwy formalne pochodzą z katalogu RevEng, a pod nimi widnieją aliasy, które najpewniej występują w instrukcji urządzenia.

  4. 4

    Albo droga na odwrót

    Jeżeli suma kontrolna jest już znana, a szukany jest jej wariant, wystarczy wpisać ją w pole wartości oczekiwanej i odczytać podświetlony wiersz.

Dlaczego suma kontrolna się nie zgadza

Liczenie sumy z tekstu „01 03” zamiast z bajtów

Pozostawiony tryb tekstowy sprawia, że kalkulator liczy sumę ze znaków ASCII zrzutu szesnastkowego, a nie z bajtów, które ten zrzut reprezentuje. Wystarczy przełączyć na tryb Hex — licznik bajtów pod przełącznikiem trybu pokazuje, który odczyt jest aktywny.

✗ Niepoprawne
Text mode, input "01 03" -> 5 bytes: 30 31 20 30 33
✓ Poprawne
Hex mode, input "01 03" -> 2 bytes: 01 03

Porównywanie z sumą kontrolną o zamienionych bajtach

Modbus RTU nadaje najpierw młodszy bajt CRC. Ramka kończąca się na C5 CD niesie sumę kontrolną 0xCDC5, a nie 0xC5CD.

✗ Niepoprawne
expected 0xC5CD  (bytes read in transmission order)
✓ Poprawne
expected 0xCDC5  (bytes reassembled low-byte-first)

Wliczenie pola sumy kontrolnej do jej własnych obliczeń

CRC obejmuje bajty, które je poprzedzają. Podanie z powrotem całej ramki wraz z zakończeniem daje residuum, a nie sumę kontrolną.

✗ Niepoprawne
01 03 00 00 00 0A C5 CD    <- trailer included
✓ Poprawne
01 03 00 00 00 0A          <- payload only

Założenie, że „CRC-16” identyfikuje algorytm

Szerokość 16 bitów ma 31 skatalogowanych wariantów. Bez pozostałych pięciu parametrów ta nazwa niczego nie zawęża.

✗ Niepoprawne
spec says: "trailer is a CRC-16"
✓ Poprawne
spec says: "CRC-16/MODBUS, poly 0x8005, init 0xFFFF, refin/refout true"

Kiedy przydaje się kalkulator CRC

Diagnostyka łącza Modbus
Sterownik PLC odrzuca ramki i trzeba ustalić, czy CRC jest błędne, czy tylko ma zamienione bajty. Wystarczy policzyć CRC-16/MODBUS i porównać obie kolejności.
Rozpoznanie nieudokumentowanego protokołu
W przechwyconym ruchu widać dwubajtowe zakończenie ramki, które wygląda na sumę kontrolną. Wystarczy podać payload i to zakończenie do wyszukiwania wstecznego i zobaczyć, który wariant się do niego przyzna.
Przenoszenie firmware'u między toolchainami
Biblioteka producenta i własna implementacja dają różne wyniki. Porównanie obu z wzorcową wartością kontrolną z katalogu pokazuje, która z nich odjechała.
Pisanie i recenzowanie specyfikacji
Napisanie w dokumencie protokołu samego „CRC-16” gwarantuje błędy interoperacyjności. Tabela parametrów podaje sześć wartości, które naprawdę przypinają algorytm.
Weryfikacja zapisanych danych
Systemy plików, formaty archiwów i obrazy pamięci flash niosą pola CRC-32. Przeliczenie takiego pola mówi, czy blok przetrwał w całości.

Jak działa CRC

Zapis wielomianu
Tabela drukuje wielomiany w postaci normalnej (najstarszy bit pierwszy): 0x8005 oznacza x^16 + x^15 + x^2 + 1. Implementacje odwrócone często pokazują ten sam wielomian jako 0xA001, a notacja Koopmana przesuwa go jeszcze inaczej. Trzy notacje na jeden wielomian to częsta przyczyna nieudanych portów.
Wartość początkowa
Wystartowanie rejestru od 0xFFFF zamiast od 0x0000 sprawia, że suma kontrolna jest czuła na wiodące bajty zerowe. Przy zerowej wartości początkowej dopisanie zer na początku wiadomości nie zmienia CRC — a to dokładnie ten rodzaj przekłamania, który protokół ramkowy musi wychwycić.
Odwrócenie bitów
refin odwraca bity wewnątrz każdego bajtu wejściowego, refout odwraca gotowy rejestr. Sprzęt taktuje bity od najstarszego, a oprogramowaniu operującemu na bajtach taniej wychodzi od najmłodszego; odwrócone postacie parametrów godzą oba podejścia.
Końcowy XOR
xorout stosuje się na samym końcu i nie jest to po prostu wartość początkowa przeniesiona na drugi koniec. Bajty zerowe dopisane na końcu wiadomości zostaną wykryte tak czy inaczej. Niezerowy xorout zmienia natomiast resztę, jaką dostaje odbiorca, gdy przepuści przez CRC wiadomość razem z sumą kontrolną: przy xorout równym zero ta reszta sama jest zerem, więc zera dopisane za polem CRC nadal przechodzą. Sprawia też, że wiadomość złożona z samych zer daje niezerową sumę kontrolną.
Wartość kontrolna
Każdy skatalogowany wariant publikuje swój wynik dla ciągu ASCII 123456789. Pokazywane na tej stronie po wczytaniu tego wejścia 63 wartości to dokładnie te opublikowane stałe — i na nich testowany jest silnik tej strony.

Jak uzyskać zgodny wynik

Nazwanie parametrów zamiast algorytmu
W specyfikacjach warto pisać „poly 0x1021, init 0xFFFF, refin false, refout false, xorout 0x0000”. Nazwa „CRC-16/CCITT” oznaczała już co najmniej trzy różne rzeczy.
Osobne sprawdzenie kolejności bajtów
Kiedy do zgodności brakuje jednej zamiany bajtów, algorytm jest poprawny, a błędne jest ramkowanie. Warto traktować to jako dwa różne defekty.
Weryfikacja najpierw wzorcową wartością kontrolną
Zanim zacznie się diagnozować dane, warto potwierdzić, że implementacja zwraca dla 123456789 wartość z katalogu. To w kilka sekund oddziela zepsuty algorytm od zepsutego wejścia.
Jasne określenie zakresu obliczeń
Większość niezgodności bierze się z włączenia albo pominięcia znaczników początku, adresów lub pól długości. Trzeba dokładnie ustalić, które bajty obejmuje CRC, i to zapisać.
Nieużywanie CRC tam, gdzie potrzebny jest MAC
CRC jest liniowe i trywialne do podrobienia. Jeżeli atakujący może zmodyfikować dane, należy sięgnąć po HMAC.

Najczęściej zadawane pytania

Dlaczego urządzenie zwraca inne CRC niż ten kalkulator?
Prawie zawsze dlatego, że porównywane są dwa różne warianty. Sam CRC-16 ma 31 skatalogowanych zestawów parametrów, a MODBUS, CCITT-FALSE, XMODEM i KERMIT dają z identycznych bajtów cztery niepowiązane liczby. Wystarczy wpisać wartość z urządzenia w pole wartości oczekiwanej: jeśli którykolwiek wariant ją odtworzy, pasujący wiersz zostanie podświetlony i odpowiedź jest gotowa. Jeżeli nie pasuje nic, liczone dane nie są tym, czym się wydają — trzeba sprawdzić kolejność bajtów oraz to, czy znaczniki początku i końca ramki wchodzą do obliczeń.
Którego CRC-16 używa Modbus?
CRC-16/MODBUS: wielomian 0x8005, wartość początkowa 0xFFFF, odwrócenie bitów na wejściu i na wyjściu, bez końcowego XOR-a. Częstszym źródłem nieporozumień jest kolejność transmisji niż sam algorytm — Modbus RTU wysyła najpierw młodszy bajt CRC, więc ramka o sumie kontrolnej 0xCDC5 ma na końcu bajty C5 CD. Rozpisana ramka znajduje się w przewodniku po wariantach CRC-16.
Czym różni się CRC-16/CCITT od CRC-16/CCITT-FALSE?
To dwa różne algorytmy o myląco podobnych nazwach i właśnie dlatego katalog RevEng przemianował oba. To, co ludzie nazywają CCITT-FALSE, to CRC-16/IBM-3740: wartość początkowa 0xFFFF, bez odwracania bitów. To, co zwykle rozumie się przez samo CCITT, to CRC-16/KERMIT: wartość początkowa 0x0000, odwrócenie bitów na wejściu i na wyjściu. Kalkulator pokazuje zarówno nazwę formalną, jak i tę, która najpewniej figuruje w instrukcji urządzenia.
Czy CRC wykryje, że plik został celowo podmieniony?
Nie. CRC to kod detekcyjny zaprojektowany do przypadkowych przekłamań w zaszumionym kanale i jest liniowy — każdy może zmienić wiadomość i tak ją dopasować, żeby CRC nadal się zgadzało. Do ochrony integralności przed świadomym atakującym służy kryptograficzny hash, na przykład SHA-256, albo konstrukcja uwierzytelniona w rodzaju HMAC. CRC świetnie robi to, do czego powstało, i nie daje przy tym żadnego bezpieczeństwa.
Co właściwie robią refin i refout?
refin odwraca kolejność bitów wewnątrz każdego bajtu wejściowego, zanim trafi on do rejestru; refout odwraca kolejność bitów gotowego rejestru. Istnieją dlatego, że sprzętowe rejestry przesuwne i programowe implementacje tablicowe taktują bity w przeciwnych kierunkach, a postacie odwrócone pozwalają obu dojść do tej samej liczby. To nie to samo co kolejność bajtów — odwrócenie działa na bitach wewnątrz bajtu, natomiast kolejność bajtów rozstrzyga, w jakiej sekwencji idą same bajty.
Mam tylko sumę kontrolną, nie mam danych. Czy narzędzie policzy to wstecz?
Nie, i żadne narzędzie tego nie zrobi. CRC ściska wiadomość dowolnej długości do 8, 16 lub 32 bitów, więc każdą wartość dzieli między sobą niezliczona liczba różnych wiadomości — to nie jest kwestia włożonego wysiłku. Wyszukiwanie wsteczne na tej stronie odpowiada na węższe pytanie: mając dane oraz sumę kontrolną, którą ktoś z nich policzył, jaki zestaw parametrów łączy jedno z drugim. Jeżeli przechwyciłeś odpowiedź urządzenia, ale nie ładunek, który za nią stoi, przechwyć najpierw ten ładunek. O wyborze między szerokościami, a nie o rozpoznawaniu jednego wariantu, mówi przewodnik po wariantach CRC-16.
Dlaczego kalkulator pokazuje 63 warianty, skoro urządzenie wymienia jeden?
Bo użyteczne pytanie brzmi zwykle nie „policz CRC”, tylko „który z nich dał wartość, którą mam w ręku”. Narzędzia, które każą najpierw wybrać wariant, zakładają, że odpowiedź jest już znana. Pokazanie wszystkich wariantów naraz zamienia identyfikację w jedno spojrzenie do tabeli, a kolumny z parametrami pozwalają potwierdzić dopasowanie względem specyfikacji, zamiast ufać samej nazwie.
Czy dane są gdziekolwiek wysyłane?
Nie. Całe obliczenie wykonuje się w przeglądarce, tym samym silnikiem, który wyrenderował tabelę na tej stronie — nie ma żadnego przesyłania, żadnego wywołania API ani żadnego logowania. Po odłączeniu od sieci narzędzie działa dalej, a to ma znaczenie, bo wejściem CRC bywają produkcyjne ramki albo obrazy firmware'u.

Powiązane narzędzia

Zobacz wszystkie narzędzia →