CRC-32C հեշ կոդի Հաշվիչ
Հրապարակվել է՝ 17 փետրվարի, 2025 թ., 18:47:30 UTC
Հեշ կոդի հաշվիչ, որն օգտագործում է CRC-32C (Cyclic Redundancy Check 32 bit, C տարբերակ) հեշ ֆունկցիան՝ տեքստի մուտքագրման կամ ֆայլի վերբեռնման հիման վրա հեշ կոդը հաշվարկելու համար:CRC-32C Hash Code Calculator
Cyclic Redundancy Check-ը (CRC) սխալ հայտնաբերող կոդ է, որը սովորաբար օգտագործվում է չմշակված տվյալների պատահական փոփոխությունները հայտնաբերելու համար: Թեև տեխնիկապես կրիպտոգրաֆիկ հեշ ֆունկցիա չէ, CRC-32-ը հաճախ կոչվում է հեշ՝ փոփոխական երկարության մուտքից ֆիքսված չափի ելք (32 բիթ) արտադրելու ունակության պատճառով: Այս էջում ներկայացված տարբերակը CRC-32C տարբերակն է, որն ավելի նոր, «խելացի» (ավելի լավ սխալի հայտնաբերում) տարբերակ է, որը հաճախ ապարատային արագացված է ժամանակակից պրոցեսորների վրա (SSE 4.2-ի միջոցով):
Ամբողջական բացահայտում. ես չեմ գրել այս էջում օգտագործվող հեշ ֆունկցիայի կոնկրետ իրականացումը: Այն ստանդարտ ֆունկցիա է, որը ներառված է PHP ծրագրավորման լեզվով: Ես միայն վեբ ինտերֆեյսը դարձրեցի, որպեսզի այն հանրությանը հասանելի դարձնեմ այստեղ՝ հարմարության համար:
CRC-32C Hash ալգորիթմի մասին
Ես մաթեմատիկոս չեմ, բայց կփորձեմ բացատրել այս հեշ ֆունկցիան պարզ անալոգիայով: Ի տարբերություն գաղտնագրման հեշ գործառույթներից շատերի, դա առանձնապես բարդ ալգորիթմ չէ, ուստի, հավանաբար, լավ կլինի ;-)
Պատկերացրեք, որ նամակ եք ուղարկում փոստով, բայց անհանգստանում եք, որ այն կարող է վնասվել մինչև ստացողին հասնելը: Նամակի բովանդակությունից ելնելով` դուք հաշվարկում եք CRC-32 ստուգիչ գումարը և այն գրում ծրարի վրա: Երբ ստացողը ստանում է նամակը, նա կարող է նաև հաշվարկել ստուգման գումարը և տեսնել, թե արդյոք այն համապատասխանում է ձեր գրածին: Եթե այդպես է, նամակը ճանապարհին չի վնասվել կամ չի փոխվել:
Այն, թե ինչպես է CRC-32-ը դա անում, չորս քայլ գործընթաց է.
Քայլ 1. Ավելացնել որոշ լրացուցիչ տարածք (լիցք)
- CRC-ն ավելացնում է մի փոքր լրացուցիչ սենյակ հաղորդագրության վերջում (ինչպես գետնանուշները տուփի մեջ փաթեթավորելը):
- Սա օգնում է նրան ավելի հեշտությամբ հայտնաբերել սխալները:
Քայլ 2. Կախարդական քանոն (Բազմանդամ)
- CRC-32-ը տվյալների չափման համար օգտագործում է հատուկ «կախարդական քանոն»:
- Մտածեք այս քանոնի մասին, ինչպես բշտիկների և ակոսների օրինակ (սա բազմանդամն է, բայց մի անհանգստացեք այդ բառի համար):
- CRC-32-ի ամենատարածված «քանոնը» ֆիքսված օրինակն է:
Քայլ 3. Քանոնի սահում (բաժանման գործընթաց)
- Այժմ CRC-ը սահեցնում է քանոնը հաղորդագրության վրայով:
- Յուրաքանչյուր կետում այն ստուգում է, թե արդյոք բշտիկները և ակոսները համընկնում են:
- Եթե նրանք չեն համընկնում, CRC-ն նշում է կատարում (սա արվում է պարզ XOR-ի միջոցով, օրինակ՝ անջատիչները միացնելով կամ անջատելով):
- Այն շարունակում է սահել և շրջել անջատիչները, մինչև այն հասնի ավարտին:
Քայլ 4. Վերջնական արդյունք (ստուգիչ գումար)
- Քանոնն ամբողջ հաղորդագրության վրա սահեցնելուց հետո ձեզ մնում է մի փոքր թիվ (32 բիթ երկարությամբ), որը ներկայացնում է սկզբնական տվյալները:
- Այս համարը նման է հաղորդագրության եզակի մատնահետքի:
- Սա CRC-32 ստուգիչ գումարն է:
Էջում ներկայացված տարբերակը CRC-32C տարբերակն է, որը պետք է լինի նախընտրելի տարբերակը, հատկապես, եթե դուք օգտագործում եք պրոցեսոր, որն ունի այն ապարատային արագացված (SSE 4.2 և ավելի ուշ) և այլ տարբերակների հետ համատեղելիության կարիք չունեք:
Ես ունեմ հաշվիչներ մյուս տարբերակների համար.