Miklix

Fowler-Noll-Vo FNV1a-32 հեշ կոդի Հաշվիչ

Հրապարակվել է՝ 18 փետրվարի, 2025 թ., 00:12:58 UTC
Վերջին թարմացումը՝ 12 հունվարի, 2026 թ., 13:28:39 UTC

Հեշ կոդի հաշվիչ, որն օգտագործում է Fowler-Noll-Vo 1a 32 բիթ (FNV1a-32) հեշ ֆունկցիան՝ տեքստի մուտքագրման կամ ֆայլի վերբեռնման հիման վրա հեշ կոդը հաշվարկելու համար:

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

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

FNV-1a 32-բիթանոց հեշ ֆունկցիան Ֆաուլեր-Նոլ-Վո (FNV) հեշ ֆունկցիաների ընտանիքի մաս է կազմում, որը նախատեսված է արագ հեշավորման համար՝ պահպանելով հեշ արժեքների լավ բաշխումը: Այն լայնորեն օգտագործվում է հեշ աղյուսակների, ստուգիչ գումարների և տվյալների որոնման նման ծրագրերում: Այն ստեղծում է 32 բիթանոց (4 բայթ) հեշ կոդ, որը հաճախ ներկայացվում է որպես 8 նիշանոց տասնվեցական թիվ:

FNV-1a տարբերակը FNV-1 բնօրինակ ֆունկցիայի բարելավված տարբերակն է՝ ավելի լավ անվտանգությամբ։

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


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

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

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



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



Ֆաուլեր-Նոլ-Վո FNV-1a 32 բիթանոց հեշ ալգորիթմի մասին

Ես մաթեմատիկոս չեմ, բայց կփորձեմ բացատրել այս հեշ ֆունկցիան՝ օգտագործելով մի անալոգիա, որը իմ ոչ մաթեմատիկոս գործընկերները կարող են հասկանալ։ Եթե նախընտրում եք գիտականորեն ճիշտ, վախեցնող մաթեմատիկական բացատրություն, վստահ եմ, որ կարող եք այն գտնել այլուր ;-)

Նախ, եկեք FNV-1 ալգորիթմը պատկերացնենք որպես հատուկ սմութի պատրաստելու բաղադրատոմս: Ձեր ավելացրած յուրաքանչյուր բաղադրիչ (օրինակ՝ մրգեր, կաթ կամ մեղր) ներկայացնում է տվյալների մի կտոր՝ տառեր, թվեր կամ նույնիսկ ամբողջական ֆայլ:

Հիմա նպատակն է այս բաղադրիչները խառնել շատ յուրահատուկ ձևով, որպեսզի բաղադրատոմսի նույնիսկ ամենափոքր փոփոխությունը (օրինակ՝ մեկ լրացուցիչ հապալաս ավելացնելը) սմութիի համը բոլորովին այլ դարձնի։ Ահա թե ինչպես են աշխատում հեշ ֆունկցիաները՝ դրանք ստեղծում են յուրահատուկ «համ» (կամ հեշ արժեք) բաղադրիչների (կամ մուտքային տվյալների) յուրաքանչյուր յուրահատուկ հավաքածուի համար։

FNV-1 ալգորիթմը սա անում է բազմաստիճան գործընթացով.

Քայլ 1. Սկսեք բազայից (օֆսեթային հիմք)

Պատկերացրեք սա նման է բլենդերի մեջ սմութիի հատուկ հիմք լցնելուն։ Այս հիմքը միշտ նույնն է՝ անկախ նրանից, թե ինչ բաղադրիչներ եք ավելացնում։ FNV-1-ում սա կոչվում է «օֆսեթային հիմք»՝ պարզապես ֆանտաստիկ մեկնարկային թիվ։

Քայլ 2. Մեկ առ մեկ ավելացնել բաղադրիչները (տվյալների մշակում)

Հիմա դուք սկսում եք ավելացնել ձեր բաղադրիչները՝ մեկ առ մեկ, օրինակ՝ ելակ, ապա բանան, ապա մի քիչ մեղր։ Դրանցից յուրաքանչյուրը ներկայացնում է տվյալների մեկ բայթ։

Քայլ 3. Խառնել գաղտնի բազմապատկիչի հետ (The FNV Prime)

Յուրաքանչյուր բաղադրիչը ավելացնելուց հետո դուք սեղմում եք խառնման կոճակը, բայց ահա թե ինչն է հետաքրքիր. բլենդերը ամեն ինչ բազմապատկում է գաղտնի «կախարդական թվով», որը կոչվում է FNV prime: Սա օգնում է շատ լավ խառնել ամեն ինչ:

Քայլ 4. Ավելացնել կախարդանքի մի կաթիլ (XOR գործողություն)

Հաջորդ բաղադրիչը ավելացնելուց առաջ դուք մի փոքր կախարդական փոշի եք ցանում (սա XOR գործողությունն է): Դա նման է համը անսպասելի ձևերով փոխելուն՝ ապահովելով, որ նույնիսկ փոքր փոփոխությունները մեծ տարբերություն առաջացնեն:

Քայլ 5. Կրկնել մինչև ավարտվի

Դուք շարունակում եք խառնել և կախարդական բան ցանել յուրաքանչյուր նոր բաղադրիչից հետո, մինչև ամեն ինչ մշակեք։

Քայլ 6. Վերջնական սմութի (հեշ արժեք)

Երբ ավարտես, սմուզին լցնում ես։ Վերջնական համը (հեշի արժեքը) յուրահատուկ է բաղադրիչների հենց այդ համադրության համար։ Եթե ավելացնեիր թեկուզ մեկ լրացուցիչ հապալաս, այն բոլորովին այլ համ կունենար։

Այստեղ ներկայացված տարբերակը FNV-1a 32 բիթանոց բարելավված տարբերակն է: Եթե ձեզ անհրաժեշտ է բնօրինակ տարբերակը, ես նաև դրա համար հաշվիչ ունեմ. Հղում

Լրացուցիչ ընթերցանություն

Եթե ​​ձեզ դուր եկավ այս գրառումը, ձեզ կարող են նաև դուր գալ այս առաջարկները.


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

Միկել Քրիստենսեն

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

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