Miklix

CRC-32 հեշ կոդի հաշվիչ

Հրապարակվել է՝ 17 փետրվարի, 2025 թ., 18:14:35 UTC

Hash code հաշվիչ, որը օգտագործում է CRC-32 (Cyclic Redundancy Check 32 bit) hash ֆունկցիան հաշ կոդը հաշվարկելու համար, որը հիմնված է տեքստի մուտքագրման կամ ֆայլի վերբեռնման վրա:

Այս էջը ավտոմատ կերպով թարգմանվել է անգլերենից՝ հնարավորինս շատ մարդկանց համար հասանելի դարձնելու համար: Ցավոք, մեքենայական թարգմանությունը դեռ կատարելագործված տեխնոլոգիա չէ, ուստի կարող են սխալներ առաջանալ: Եթե ​​նախընտրում եք, կարող եք դիտել բնօրինակ անգլերեն տարբերակը այստեղ.

CRC-32 Hash Code Calculator

Cyclic Redundancy Check (CRC) - սխալների հայտնաբերման կոդ է, որը սովորաբար օգտագործվում է հում տվյալների պատահական փոփոխությունները հայտնաբերելու համար։ Թեեւ տեխնիկապես կրիպտոգրաֆիկ հաշ ֆունկցիա չէ, սակայն CRC-32 հաճախ անվանում են հեշ, քանի որ փոփոխական-երկարության մուտքից ֆիքսված չափի ելք (32 բիթ) արտադրելու ունակությունը։

Ամբողջական բացահայտում. ես չեմ գրել այս էջում օգտագործվող հեշ ֆունկցիայի կոնկրետ իրականացումը: Այն ստանդարտ ֆունկցիա է, որը ներառված է PHP ծրագրավորման լեզվով: Ես միայն վեբ ինտերֆեյսը դարձրեցի, որպեսզի այն հանրությանը հասանելի դարձնեմ այստեղ՝ հարմարության համար:


Հաշվարկել նոր հեշ կոդը

Ներկայացված տվյալները կամ այս ձևի միջոցով վերբեռնված ֆայլերը կպահվեն սերվերում միայն այնքան ժամանակ, որքան պահանջվում է պահանջվող հեշ կոդը ստեղծելու համար: Այն կջնջվի անմիջապես նախքան արդյունքը ձեր դիտարկիչին վերադարձնելը:

Մուտքային տվյալներ.



Ներկայացված տեքստը UTF-8 կոդավորված է: Քանի որ հեշ ֆունկցիաները գործում են երկուական տվյալների վրա, արդյունքը տարբեր կլինի, քան եթե տեքստը լիներ մեկ այլ կոդավորման մեջ: Եթե ​​Ձեզ անհրաժեշտ է հաշվարկել տեքստի հեշը կոնկրետ կոդավորման մեջ, փոխարենը պետք է ֆայլ վերբեռնեք:



CRC-32 Հաշ ալգորիթմի մասին

Ես մաթեմատիկոս չեմ, բայց կփորձեմ բացատրել այս hash ֆունկցիան պարզ անալոգիայով: Ի տարբերություն կրիպտոգրաֆիկ հաշ ֆունկցիաներից շատերի, այն առանձնապես բարդ ալգորիթմ չէ, ուստի հավանաբար կլինի okay ;-)

Պատկերացրեք, որ նամակ եք ուղարկում փոստում, բայց դուք անհանգստացած եք, որ այն կարող է վնասվել նախքան ստացողի մոտ հասնելը: Նամակի բովանդակության հիման վրա հաշվում եք CRC-32 checksum եւ գրում եք դա ծրարի վրա: Երբ ստացողը ստանում է նամակը, ապա նա կարող է նաեւ հաշվել ստուգումը եւ տեսնել, թե արդյոք այն համապատասխանում է ձեր գրածին: Եթե այդպես է, ճանապարհին նամակը չի վնասվել կամ չի փոխվել։

Այն, թե ինչպես է CRC-32 անում սա, չորս քայլային գործընթաց է.

Քայլ 1. Ավելացնել որոշ լրացուցիչ տարածություն (Padding)

  • CRC-ն հաղորդագրության վերջում ավելացնում է մի փոքր լրացուցիչ սենյակ (ինչպես տուփի մեջ գետնանուշ փաթեթավորելը):
  • Սա օգնում է նրան ավելի հեշտությամբ նկատել սխալները։

Քայլ 2. Կախարդական իշխանը (Պոլինոմիական)

  • CRC-32-ը տվյալները չափելու համար օգտագործում է հատուկ «կախարդական կառավարիչ»:
    • Մտածեք այս կառավարչի մասին, ինչպես բշտերի եւ փեսաների օրինաչափությունը (սա պոլինոմիալն է, բայց մի անհանգստացեք այդ բառի համար):
    • CRC-32-ի համար ամենատարածված «կառավարիչը» ֆիքսված օրինաչափությունն է:

Քայլ 3. Սահեցնել ռուլետկա (բաժանման գործընթաց)

  • Այժմ ԿԽՄԿ-ն կառավարչին սահում է ուղերձի վրայով:
    • Յուրաքանչյուր վայրում ստուգվում է, թե արդյոք բշտիկներն ու պոչերը շարված են։
    • Եթե նրանք շարված չեն, CRC-ն գրառում է անում (սա արվում է օգտագործելով պարզ XOR, ինչպես flipping switches on կամ off).
    • Այն շարունակում է սահել եւ թեքվել, մինչեւ որ հասնի մինչեւ վերջ։

Քայլ 4. Վերջնական արդյունքը (The Checksum)

  • Կառավարչին ամբողջ հաղորդագրությունը սահելուց հետո ձեզ մնում է փոքր թիվ (32 բիթ երկարություն), որը ներկայացնում է սկզբնական տվյալները:
    • Այս թիվը նման է հաղորդագրության եզակի մատնահետքի:
    • Սա CRC-32 checksum-ն է:

Էջում ներկայացված տարբերակը սկզբնական CRC-32 ֆունկցիան է, որը դուք պետք է օգտագործեք այլ համակարգերի հետ լավագույն համատեղելիության համար:

Ունեմ հաշվիչներ նաեւ մյուս տարատեսակների համար.

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Բանգ Քրիստենսեն

Հեղինակի մասին

Միկել Բանգ Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: