CRC-32B Hash kóða reiknivél
Birt: 19. mars 2025 kl. 20:50:31 UTC
Hash kóða reiknivél sem notar CRC-32B (Cyclic Redundancy Check 32 bita, B afbrigði) kjötkássaaðgerð til að reikna út kjötkássa kóða byggt á textainnslátt eða upphleðslu skráa.CRC-32B Hash Code Calculator
Cyclic Redundancy Check (CRC) er villugreiningarkóði sem almennt er notaður til að greina breytingar fyrir slysni á hráum gögnum. Þó að það sé ekki tæknilega dulmáls kjötkássaaðgerð, er CRC-32 oft vísað til sem kjötkássa vegna getu þess til að framleiða fasta stærð úttaks (32 bita) frá breytilegri lengd inntaks. Útgáfan sem kynnt er á þessari síðu er CRC-32B afbrigðið, sem er í rauninni bara sérkenni í PHP tungumálinu sem snýst um bitana (litla-endían á móti big-endian í upprunalega CRC-32).
Full upplýsingagjöf: Ég skrifaði ekki sérstaka útfærslu kjötkássaaðgerðarinnar sem notuð er á þessari síðu. Það er staðlað aðgerð sem fylgir PHP forritunarmálinu. Ég gerði vefviðmótið aðeins til að gera það almennt aðgengilegt hér til hægðarauka.
Um CRC-32B Hash reiknirit
Ég er ekki stærðfræðingur, en ég mun reyna að útskýra þessa hash fall með einfaldri samanburði. Ólíkt mörgum af kriptógröfísku hash föllum, þá er þetta ekki sérstaklega flókið reiknirit, svo það ætti líklega að vera í lagi ;-)
Ímyndaðu þér að þú sért að senda bréf í pósti, en þú ert áhyggjufullur um að það kunni að skemmast áður en það kemur til viðtakandans. Út frá innihaldi bréfsins reiknar þú út CRC-32 samantekt og skrifar hana á umslagið. Þegar viðtakandinn fær bréfið getur hann eða hún einnig reiknað út samantektina og séð hvort hún passi við það sem þú skrifaðir. Ef það passar var bréfið ekki skemmt eða breytt á leiðinni.
Það sem CRC-32 gerir er ferli í fjórum skrefum:
Skref 1: Bæta við aukarými (Padding)
- CRC bætir við smá auka rými í lokin á skilaboðunum (líkt og pökkunarpúðar í kassa).
- Þetta hjálpar því að finna villur auðveldar.
Skref 2: Tölfræðileg mæling (Polynóm)
- CRC-32 notar sérstakan "tölfræðilegan mæli" til að mæla gögnin.
- Ímyndaðu þér að þessi mæli sé eins og mynstrið af hnúðum og skurðum (þetta er polynóm, en ekki hafa áhyggjur af því orði).
- Algengasti "mælingin" fyrir CRC-32 er fast mynstur.
Skref 3: Hreyfing á mæli (Deilingarferli)
- Nú rennur CRC mælinum yfir skilaboðin.
- Á hverjum stað athugar það hvort hnúðarnir og skurðirnir passi saman.
- Ef þeir passa ekki saman, þá tekur CRC eftir því (þetta er gert með einföldum XOR, eins og að snúa rofum á eða af).
- Það heldur áfram að renna og snúa rofum þar til það nær endanum.
Skref 4: Loka niðurstaða (Samantektin)
- Þegar mælinum hefur verið rennt yfir allt skilaboðin, stendur eftir lítill talna (32 bita langur) sem táknar upprunaleg gögnin.
- Þessi tala er eins og einstök fingrafar fyrir skilaboðin.
- Þetta er CRC-32 samantektin.
Útgáfan sem kynnt er á síðunni er CRC-32B afbrigðið, sem er að mestu PHP furða sem snýr um bitaröðina (little-endian vs big-endian). Þú ættir líklega bara að nota þessa útgáfu ef þú þarft sérstaklega samhæfni við aðra PHP forrit sem nota hana.
Ég á einnig reiknivélar fyrir önnur afbrigði: