Miklix

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

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

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

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

CRC-32B Hash Code Calculator

Cyclic Redundancy Check-ը (CRC) սխալ հայտնաբերող կոդ է, որը սովորաբար օգտագործվում է չմշակված տվյալների պատահական փոփոխությունները հայտնաբերելու համար: Թեև տեխնիկապես կրիպտոգրաֆիկ հեշ ֆունկցիա չէ, CRC-32-ը հաճախ կոչվում է հեշ՝ փոփոխական երկարության մուտքից ֆիքսված չափի ելք (32 բիթ) արտադրելու ունակության պատճառով: Այս էջում ներկայացված տարբերակը CRC-32B տարբերակն է, որն իրոք պարզապես տարօրինակություն է PHP լեզվում, որը շրջում է բիթերը (բիգ-էնդիան ընդդեմ մեծ էնդիան բնօրինակ CRC-32-ում):

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


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

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

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



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



CRC-32B Hash ալգորիթմի մասին

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

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

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

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

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

Քայլ 2. Կախարդական քանոն (Բազմանդամ)

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

Քայլ 3. Քանոնի սահում (բաժանման գործընթաց)

  • Այժմ CRC-ը սահեցնում է քանոնը հաղորդագրության վրայով:
    • Յուրաքանչյուր կետում այն ​​ստուգում է, թե արդյոք բշտիկները և ակոսները համընկնում են:
    • Եթե ​​նրանք չեն համընկնում, CRC-ն նշում է անում (սա արվում է պարզ XOR-ի միջոցով, օրինակ՝ անջատիչները միացնելով կամ անջատելով):
    • Այն շարունակում է սահել և շրջել անջատիչները, մինչև այն հասնի ավարտին:

Քայլ 4. Վերջնական արդյունք (ստուգիչ գումար)

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

Էջում ներկայացված տարբերակը CRC-32B տարբերակն է, որը հիմնականում PHP տարօրինակություն է, որը փոխում է բիթերի կարգը (little-endian vs big-endian): Դուք, հավանաբար, պետք է օգտագործեք այս տարբերակը միայն այն դեպքում, եթե ձեզ հատուկ անհրաժեշտ է համատեղելիություն այլ PHP հավելվածի հետ, որն օգտագործում է այն:

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


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

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

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

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