Kikokotoo cha Msimbo wa Hash CRC-32B
Iliyochapishwa: 17 Februari 2025, 18:31:11 UTC
Kikokotoo cha kukokotoa msimbo wa hashi kinachotumia kipengele cha hashi cha CRC-32B (Kilahaja cha Upungufu wa Mzunguko wa biti 32, B) ili kukokotoa msimbo wa heshi kulingana na maandishi au upakiaji wa faili.CRC-32B 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 la CRC-32B, ambalo kwa kweli ni jambo gumu katika lugha ya PHP ambalo hugeuza sehemu zote (little-endian vs big-endian katika CRC-32 asili).
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.
Kuhusu Algorithm ya CRC-32B 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 hazitapanga 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 mzima, 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-32B, ambayo mara nyingi ni muundo wa PHP ambao hubadilisha mpangilio wa biti (little-endian vs big-endian). Labda unapaswa kutumia toleo hili tu ikiwa unahitaji utangamano na programu nyingine ya PHP inayoitumia.
Nina vihesabu vya anuwai zingine pia: