CRC-32 Hash-kodeberegner
Udgivet: 17. februar 2025 kl. 18.10.59 UTC
Sidst opdateret: 12. januar 2026 kl. 09.14.44 UTC
CRC-32 Hash Code Calculator
Cyclic Redundancy Check (CRC) er en fejlfindingskode, der almindeligvis bruges til at detektere utilsigtede ændringer i rådata. Selvom det teknisk set ikke er en kryptografisk hashfunktion, omtales CRC-32 ofte som en hash på grund af dens evne til at producere et output med fast størrelse (32 bit) fra input med variabel længde.
Fuld åbenhed: Jeg har ikke skrevet den specifikke implementering af den hash-funktion, der bruges på denne side. Det er en standardfunktion, der følger med programmeringssproget PHP. Jeg har kun lavet webgrænsefladen for at gøre den offentligt tilgængelig her for nemheds skyld.
Om CRC-32 Hash-algoritmen
Jeg er ikke matematiker, men jeg vil forsøge at forklare denne hashfunktion med en simpel analogi. I modsætning til mange af de kryptografiske hashfunktioner er det ikke en særlig kompliceret algoritme, så det skal nok gå ;-)
Forestil dig, at du sender et brev med posten, men du er bekymret for, at det kan blive beskadiget, før det ankommer til modtageren. Baseret på brevets indhold beregner du en CRC-32-kontrolsum og skriver den på kuverten. Når modtageren modtager brevet, kan han eller hun også beregne kontrolsummen og se, om den stemmer overens med det, du skrev. Hvis den gør, er brevet ikke blevet beskadiget eller ændret undervejs.
Måden CRC-32 gør dette på er en proces med fire trin:
Trin 1: Tilføj ekstra plads (polstring)
- CRC tilføjer lidt ekstra plads i slutningen af beskeden (ligesom at pakke jordnødder i en æske).
- Dette hjælper den med lettere at opdage fejl.
Trin 2: Den magiske lineal (polynomiet)
- CRC-32 bruger en speciel "magisk lineal" til at måle dataene. Tænk på denne lineal som et mønster af buler og riller (dette er polynomiet, men bare rolig med det ord). Den mest almindelige "lineal" for CRC-32 er et fast mønster.
Trin 3: Glidning af linealen (divisionsproces)
- Nu glider CRC linealen hen over beskeden. På hvert sted kontrollerer den, om ujævnheder og riller flugter. Hvis de ikke flugter, laver CRC en note (dette gøres ved hjælp af simpel XOR, ligesom at tænde eller slukke for kontakter). Den bliver ved med at skubbe og vippe kontakter, indtil den når slutningen.
Trin 4: Det endelige resultat (kontrolsummen)
- Når du har skubbet linealen hen over hele beskeden, står du tilbage med et lille tal (32 bit langt), der repræsenterer de originale data. Dette tal er som et unikt fingeraftryk for beskeden. Dette er CRC-32-kontrolsummen.
Den version, der præsenteres på siden, er den originale CRC-32-funktion, som er den, du bør bruge for at opnå den bedste kompatibilitet med andre systemer.
Jeg har også lommeregnere til de andre varianter:
- Forbindelse
- Forbindelse
Yderligere læsning
Hvis du kunne lide dette indlæg, kan du måske også lide disse forslag:
