Miklix

CRC-32B Hashkodräknare

Publicerad: 17 februari 2025 kl. 18:30:54 UTC

Hashkodräknare som använder hashfunktionen CRC-32B (Cyclic Redundancy Check 32 bit, B variant) för att beräkna en hashkod baserat på textinmatning eller filuppladdning.

Denna sida har maskinöversatts från engelska för att göra den tillgänglig för så många som möjligt. Tyvärr är maskinöversättning ännu inte en fulländad teknik, så fel kan uppstå. Om du föredrar det kan du se den engelska originalversionen här:

CRC-32B Hash Code Calculator

Cyclic Redundancy Check (CRC) är en felupptäckande kod som vanligtvis används för att upptäcka oavsiktliga ändringar av rådata. Även om det inte tekniskt sett är en kryptografisk hashfunktion, hänvisas CRC-32 ofta till som en hash på grund av dess förmåga att producera en utdata med fast storlek (32 bitar) från indata med variabel längd. Den version som presenteras på den här sidan är CRC-32B-varianten, som egentligen bara är en egenhet i PHP-språket som vänder på bitarna (little-endian vs big-endian i den ursprungliga CRC-32).

Fullständig information: Jag har inte skrivit den specifika implementeringen av hashfunktionen som används på den här sidan. Det är en standardfunktion som ingår i programmeringsspråket PHP. Jag har bara gjort webbgränssnittet för att göra den allmänt tillgänglig här för enkelhetens skull.


Beräkna ny hashkod

Data som skickas eller filer som laddas upp via detta formulär kommer endast att sparas på servern så länge som det tar att generera den begärda hashkoden. De kommer att raderas omedelbart innan resultatet returneras till din webbläsare.

Ingångsdata:



Den skickade texten är UTF-8-kodad. Eftersom hashfunktioner arbetar med binära data kommer resultatet att bli annorlunda än om texten hade en annan kodning. Om du behöver beräkna en hash av en text i en specifik kodning bör du ladda upp en fil i stället.



Om CRC-32B Hash Algorithm

Jag är ingen matematiker, men jag ska försöka förklara denna hashfunktion med en enkel analogi. Till skillnad från många av de kryptografiska hashfunktionerna är det inte en särskilt komplicerad algoritm, så det kommer nog att gå bra ;-)

Föreställ dig att du skickar ett brev med posten, men du är orolig att det kan skadas innan det kommer till mottagaren. Baserat på innehållet i brevet beräknar du en CRC-32-kontrollsumma och skriver det på kuvertet. När mottagaren får brevet kan han eller hon sedan även räkna ut kontrollsumman och se om den stämmer med det du skrivit. Om den gör det skadades inte brevet eller ändrades på vägen.

Sättet som CRC-32 gör detta på är en process i fyra steg:

Steg 1: Lägg till lite extra utrymme (utfyllnad)

  • CRC lägger till lite extra utrymme i slutet av meddelandet (som att packa jordnötter i en låda).
  • Detta hjälper det att upptäcka fel lättare.

Steg 2: Den magiska linjalen (polynomet)

  • CRC-32 använder en speciell "magisk linjal" för att mäta data.
    • Tänk på den här linjalen som ett mönster av stötar och räfflor (detta är polynomet, men oroa dig inte för det ordet).
    • Den vanligaste "linjalen" för CRC-32 är ett fast mönster.

Steg 3: Skjut linjalen (delningsprocessen)

  • Nu skjuter CRC linjalen över meddelandet.
    • På varje plats kontrollerar den om stötarna och spåren är i linje med varandra.
    • Om de inte står i linje gör CRC en anteckning (detta görs med enkla XOR, som att slå på eller av strömbrytare).
    • Den fortsätter att glida och vrida omkopplarna tills den når slutet.

Steg 4: Slutresultatet (Kontrollsumman)

  • När du har fört linjalen över hela meddelandet, har du ett litet nummer (32 bitar långt) som representerar originaldata.
    • Detta nummer är som ett unikt fingeravtryck för meddelandet.
    • Detta är CRC-32-kontrollsumman.

Den version som presenteras på sidan är CRC-32B-varianten, som mest är en PHP-quirk som växlar bitordningen runt (little-endian vs big-endian). Du bör förmodligen bara använda den här versionen om du specifikt behöver kompatibilitet med en annan PHP-applikation som använder den.

Jag har även miniräknare för de andra varianterna:


Dela på BlueskyDela på FacebookDela på LinkedInDela på TumblrDela på XDela på LinkedInFäst på Pinterest

Mikkel Bang Christensen

Om författaren

Mikkel Bang Christensen
Mikkel är skaparen och ägaren av miklix.com. Han har över 20 års erfarenhet som professionell datorprogrammerare/mjukvaruutvecklare och är för närvarande heltidsanställd på ett stort europeiskt IT-bolag. När han inte bloggar ägnar han sin fritid åt en mängd olika intressen, hobbies och aktiviteter, vilket i viss mån kan återspeglas i de olika ämnen som behandlas på den här webbplatsen.