Miklix

Kikokotoo cha Msimbo wa Hash CRC-32C

Iliyochapishwa: 17 Februari 2025, 18:45:40 UTC

Kikokotoo cha msimbo wa Hash kinachotumia kipengele cha hashi cha CRC-32C (Cyclic Redundancy Check 32 bit, C lahaja) ili kukokotoa msimbo wa heshi kulingana na maandishi au upakiaji wa faili.

Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

CRC-32C Hash Code Calculator

Ukaguzi wa Upungufu wa Mzunguko (CRC) ni msimbo wa kutambua hitilafu unaotumiwa sana kugundua mabadiliko ya kimakosa kwa data ghafi. Ingawa si kitendakazi cha heshi ya kriptografia, CRC-32 mara nyingi hujulikana kama heshi kutokana na uwezo wake wa kutoa pato la ukubwa usiobadilika (biti 32) kutoka kwa ingizo la urefu tofauti. Toleo lililowasilishwa kwenye ukurasa huu ni lahaja ya CRC-32C, ambayo ni toleo jipya zaidi, "nadhifu" (ugunduzi bora wa makosa) ambalo mara nyingi maunzi huharakishwa kwenye CPU za kisasa (kupitia SSE 4.2).

Ufichuzi kamili: Sikuandika utekelezaji mahususi wa chaguo za kukokotoa za heshi zinazotumiwa kwenye ukurasa huu. Ni kazi ya kawaida iliyojumuishwa na lugha ya programu ya PHP. Nilitengeneza kiolesura cha wavuti ili kuifanya ipatikane hadharani hapa kwa urahisi.


Hesabu Msimbo Mpya wa Hash

Data iliyowasilishwa au faili zilizopakiwa kupitia fomu hii zitawekwa tu kwenye seva kwa muda mrefu kama inachukua ili kuzalisha msimbo wa hashi ulioombwa. Itafutwa mara moja kabla ya matokeo kurejeshwa kwenye kivinjari chako.

Data ya ingizo:



Maandishi yaliyowasilishwa yamesimbwa UTF-8. Kwa kuwa vitendaji vya heshi vinafanya kazi kwenye data binary, matokeo yatakuwa tofauti kuliko ikiwa maandishi yalikuwa katika usimbaji mwingine. Ikiwa unahitaji kukokotoa heshi ya maandishi katika usimbaji mahususi, unapaswa kupakia faili badala yake.



Kuhusu Algorithm ya CRC-32C Hash

Mimi si mtaalamu wa hisabati, lakini nitajaribu kuelezea kazi hii ya hashi na mlinganisho rahisi. Tofauti na kazi nyingi za heshi za kriptografia, sio algoriti changamano, kwa hivyo pengine itakuwa sawa ;-)

Fikiria kuwa unatuma barua kwa barua, lakini una wasiwasi kwamba inaweza kuharibika kabla ya kumfikia mpokeaji. Kulingana na maudhui ya barua, unahesabu hundi ya CRC-32 na kuandika hiyo kwenye bahasha. Mpokeaji anapopokea barua, anaweza pia kuhesabu hundi na kuona kama inalingana na ulichoandika. Ikiwa ndivyo, barua haikuharibiwa au kubadilishwa njiani.

Jinsi CRC-32 hufanya hivi ni mchakato wa hatua nne:

Hatua ya 1: Ongeza Nafasi Fulani ya Ziada (Padding)

  • CRC inaongeza chumba kidogo cha ziada mwishoni mwa ujumbe (kama vile kufunga karanga kwenye sanduku).
  • Hii husaidia kuona makosa kwa urahisi zaidi.

Hatua ya 2: Mtawala wa Kichawi (Polynomial)

  • CRC-32 hutumia "kitawala cha kichawi" maalum kupima data.
    • Fikiria mtawala huyu kama muundo wa matuta na grooves (hii ni polynomial, lakini usijali kuhusu neno hilo).
    • "Mtawala" wa kawaida kwa CRC-32 ni muundo uliowekwa.

Hatua ya 3: Kutelezesha Kitawala (Mchakato wa Mgawanyiko)

  • Sasa CRC inatelezesha rula kwenye ujumbe.
    • Katika kila doa, hukagua kama matuta na grooves zimejipanga.
    • Ikiwa hazijapanga mstari, CRC huandika (hii inafanywa kwa kutumia XOR rahisi, kama vile kuwasha au kuzima swichi).
    • Inaendelea kuteleza na kugeuza swichi hadi kufikia mwisho.

Hatua ya 4: Matokeo ya Mwisho (Checksum)

  • Baada ya kutelezesha rula kwenye ujumbe wote, umesalia na nambari ndogo (urefu wa biti 32) ambayo inawakilisha data asili.
    • Nambari hii ni kama alama ya kidole ya kipekee kwa ujumbe.
    • Hii ni hundi ya CRC-32.

Toleo lililowasilishwa kwenye ukurasa ni lahaja ya CRC-32C, ambayo inapaswa kuwa lahaja inayopendelewa, hasa ikiwa unatumia CPU iliyoharakishwa maunzi (SSE 4.2 na baadaye) na hauhitaji uoanifu na vibadala vingine.

Nina vihesabu vya anuwai zingine pia:

Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Bang Christensen

Kuhusu Mwandishi

Mikkel Bang Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.