Co to jest CRC-32?
CRC-32 (Cyclic Redundancy Check, 32-bit) to szybki algorytm sumy kontrolnej używany do wykrywania przypadkowych zmian w danych. Generuje 32-bitową wartość (8 znaków szesnastkowych) na podstawie dzielenia wielomianowego danych wejściowych. Powszechnie implementowany w sprzęcie i oprogramowaniu do sprawdzania błędów w sieciach, urządzeniach pamięci masowej i formatach plików.
Jak działa CRC-32
- Zainicjuj 32-bitowy rejestr wszystkimi jedynkami (0xFFFFFFFF).
- Przetwarzaj każdy bajt, wykonując XOR z najwyższym bajtem rejestru i indeksując do wstępnie obliczonej tablicy.
- Przesuń rejestr o 8 bitów i wykonaj XOR z wartością z tablicy.
- Powtarzaj, aż wszystkie bajty zostaną przetworzone.
- Zakończ przez zanegowanie rejestru (bitwise NOT), aby uzyskać wartość CRC-32.
Typowe zastosowania
- ZIP, gzip, PNG i inne formaty plików do kontroli integralności
- Ethernet, PPP i inne protokoły sieciowe
- Urządzenia pamięci masowej jak HDD, SSD i kontrolery RAID
- Weryfikacja archiwów i integralność pobrań
Przykładowe sumy kontrolne
Input | CRC-32 |
---|---|
Hello World | 4a17b156 |
password | 477dff2a |
test123 | c4b96aea |
(pusty) | 00000000 |
CRC-32 a inne sumy kontrolne i hashe
Algorithm | Output | Odporność na kolizje | Speed |
---|---|---|---|
CRC-32 | 32 bity | ❌ Niska | ⚡ Bardzo szybka |
MD5 | 128 bitów | ❌ Złamana | ⚡ Szybko |
SHA-1 | 160 bitów | ❌ Naruszona | ⚡ Szybko |
SHA-256 | 256 bitów | ✅ Bezpieczna | 🚀 Umiarkowana |
BLAKE3 | 256 bitów | ✅ Bardzo bezpieczna | ⚡ Ekstremalnie szybka |
Najczęściej zadawane pytania
Czy CRC-32 jest bezpieczne do zastosowań kryptograficznych?
Nie. CRC-32 jest zaprojektowane do wykrywania błędów, a nie do bezpieczeństwa. Jest podatne na celowe kolizje.
Dlaczego używać CRC-32 zamiast kryptograficznego hasha?
CRC-32 jest znacznie szybsze i wystarczające do wykrywania przypadkowych błędów, ale nie powinno być używane w aplikacjach krytycznych pod względem bezpieczeństwa.
Jak mogę zweryfikować pobranie pliku?
Wygeneruj sumę kontrolną CRC-32 pobranego pliku i porównaj ją z opublikowaną wartością, aby zapewnić integralność.