Fowler-Noll-Vo FNV1a-32 ဟက်ရှ်ကုဒ်တွက်စက်
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၈ UTC ၀၀:၁၃:၃၁
စာသားထည့်သွင်းမှု သို့မဟုတ် ဖိုင်အပ်လုဒ်အပေါ် အခြေခံ၍ hash ကုဒ်ကို တွက်ချက်ရန် Fowler-Noll-Vo 1a 32 bit (FNV1a-32) hash လုပ်ဆောင်ချက်ကို အသုံးပြုသည့် Hash ကုဒ်ဂဏန်းတွက်စက်။Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
FNV-1a 32-bit hash လုပ်ဆောင်ချက်သည် hash တန်ဖိုးများကို ထိန်းသိမ်းထားစဉ်တွင် မြန်ဆန်စွာ ဟက်ခြင်းအတွက် ဒီဇိုင်းထုတ်ထားသည့် Fowler-Noll-Vo (FNV) မိသားစု၏ တစ်စိတ်တစ်ပိုင်းဖြစ်သည်။ ၎င်းကို hash tables၊ checksums နှင့် data lookups ကဲ့သို့သော application များတွင် အသုံးများသည်။ ၎င်းသည် 32 ဘစ် (4 byte) hash ကုဒ်ကိုထုတ်ပေးပြီး ဂဏန်း 8 လုံးအား ဆဋ္ဌမကိန်းဂဏန်းအဖြစ် ကိုယ်စားပြုလေ့ရှိသည်။
FNV-1a ဗားရှင်းသည် ပိုမိုကောင်းမွန်သော လုံခြုံရေးဖြင့် မူရင်း FNV-1 လုပ်ဆောင်ချက်ထက် ပိုမိုကောင်းမွန်သော ဗားရှင်းတစ်ခုဖြစ်သည်။
ထုတ်ဖော်ချက်အပြည့်အစုံ- ဤစာမျက်နှာတွင်အသုံးပြုထားသော hash function ၏ သီးခြားအကောင်အထည်ဖော်မှုကို ကျွန်ုပ်မရေးခဲ့ပါ။ ၎င်းသည် PHP ပရိုဂရမ်းမင်းဘာသာစကားဖြင့် ပါဝင်သော စံလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အဆင်ပြေစေရန် ဤနေရာတွင် လူသိရှင်ကြားရစေရန် ဝဘ်အင်တာဖေ့စ်ကိုသာ ပြုလုပ်ထားပါသည်။
Fowler-Noll-Vo FNV-1a 32 bit Hash Algorithm အကြောင်း
ကျွန်ုပ်သည် သင်္ချာပညာရှင်မဟုတ်ပါ၊ သို့သော် ကျွန်ုပ်၏သင်္ချာမဟုတ်သော သင်္ချာမဟုတ်သူများ နားလည်နိုင်သော ယှဉ်တွဲကို အသုံးပြု၍ ဤ hash လုပ်ဆောင်ချက်ကို ရှင်းပြရန် ကြိုးစားပါမည်။ သိပ္ပံနည်းကျ မှန်ကန်ပြီး ကြောက်စရာကောင်းတဲ့ သင်္ချာရှင်းပြချက်ကို နှစ်သက်တယ်ဆိုရင် အဲဒါကို တခြားနေရာမှာ ရှာတွေ့နိုင်မှာ သေချာပါတယ် ;-)
ပထမဦးစွာ၊ အထူးဖျော်စပ်မှုပြုလုပ်ရန် စာရွက်ကဲ့သို့ FNV-1 algorithm ကို စဉ်းစားကြည့်ကြပါစို့။ သင်ထည့်ထားသော ပါဝင်ပစ္စည်းတစ်ခုစီသည် (အသီးအနှံများ၊ နို့ သို့မဟုတ် ပျားရည်ကဲ့သို့) စာလုံးများ၊ နံပါတ်များ သို့မဟုတ် ဖိုင်တစ်ခုလုံးကိုပင် ဒေတာအပိုင်းအစကို ကိုယ်စားပြုသည်။
ယခု ရည်ရွယ်ချက်မှာ အဆိုပါပါဝင်ပစ္စည်းများကို အလွန်တိကျသောနည်းဖြင့် ရောစပ်ရန်ဖြစ်ပြီး ဟင်းချက်ချက်တွင် အသေးငယ်ဆုံးသောပြောင်းလဲမှုသည် (အပိုဘလူးဘယ်ရီတစ်လုံးထည့်ခြင်းကဲ့သို့) smoothie အရသာကို လုံးဝကွဲပြားသွားစေစေရန်ဖြစ်သည်။ Hash လုပ်ဆောင်ချက်များသည် ဤနည်းအတိုင်းပင်ဖြစ်သည် - ၎င်းတို့သည် ထူးခြားသောပါဝင်ပစ္စည်းများ (သို့မဟုတ် ထည့်သွင်းဒေတာ) တိုင်းအတွက် ထူးခြားသော "အရသာ" (သို့မဟုတ် hash တန်ဖိုး) ကို ဖန်တီးပါသည်။
FNV-1 algorithm လုပ်ဆောင်ပုံသည် အဆင့်ပေါင်းများစွာ လုပ်ငန်းစဉ်ဖြစ်သည်-
အဆင့် 1- အခြေခံတစ်ခု (Offset Basis) ဖြင့် စတင်ပါ။
၎င်းကို သင်၏ Blender ထဲသို့ အထူး smoothie base လောင်းထည့်သလိုမျိုး စဉ်းစားကြည့်ပါ။ မည်သည့်ပါဝင်ပစ္စည်းများ ထည့်ထားပါစေ ဤအခြေခံသည် အမြဲတူညီပါသည်။ FNV-1 တွင်၊ ၎င်းကို "အော့ဖ်ဆက်အခြေခံ" ဟုခေါ်သည် - စိတ်ကူးယဉ်စသည့်နံပါတ်တစ်ခုမျှသာဖြစ်သည်။
အဆင့် 2- ပါဝင်ပစ္စည်းများကို တစ်ခုပြီးတစ်ခု ထည့်ပါ (ဒေတာကို လုပ်ဆောင်နေသည်)
အခု မင်းရဲ့ပါဝင်ပစ္စည်းတွေကို တစ်ကြိမ်တည်းထည့်ပါ - စတော်ဘယ်ရီတစ်လုံး၊ ပြီးတော့ ငှက်ပျောသီးတစ်လုံး၊ ပြီးတော့ ပျားရည်နည်းနည်းပဲဆိုကြပါစို့။ ၎င်းတို့တစ်ခုစီသည် ဒေတာတစ်ဘိုက်ကို ကိုယ်စားပြုသည်။
အဆင့် 3- လျှို့ဝှက်အမြှောက်တစ်ခုဖြင့် ရောနှောပါ (FNV Prime)
ပါဝင်ပစ္စည်းတစ်ခုစီကို ပေါင်းထည့်ပြီးနောက် ရောစပ်ခလုတ်ကို နှိပ်လိုက်သော်လည်း ဤနေရာတွင် လှည့်ကွက်ဖြစ်ပါသည်- Blender သည် FNV prime ဟုခေါ်သော လျှို့ဝှက် "မှော်နံပါတ်" ဖြင့် အရာအားလုံးကို မြှောက်ပေးပါသည်။ ၎င်းသည် အရာများကို ကောင်းစွာ ရောနှောရန် ကူညီပေးသည်။
အဆင့် 4- Magic Dash (XOR လုပ်ဆောင်ချက်) ကိုထည့်ပါ။
နောက်ပါဝင်ပစ္စည်းမထည့်ခင် မှော်မှုန့်အနည်းငယ်ဖြန်းပါ (ဒါက XOR လုပ်ဆောင်ချက်ပါ)။ သေးငယ်သော အပြောင်းအလဲများပင် ကြီးမားသော ခြားနားမှုကို ဖြစ်စေကြောင်း သေချာစေမည့် အရသာကို မမျှော်လင့်ထားသော နည်းလမ်းများဖြင့် လှန်လိုက်သလိုပါပဲ။
အဆင့် 5: ပြီးသည်အထိ ပြန်လုပ်ပါ။
သင်ပါဝင်ပစ္စည်းအသစ်တစ်ခုစီပြီးနောက် မှော်ပညာကို ရောစပ်ပြီး ဖြန်းနေပါသည်။
အဆင့် 6- နောက်ဆုံး Smoothie (Hash Value)
ပြီးသွားရင်တော့ smoothie ကို သွန်လိုက်ပါ။ နောက်ဆုံးအရသာ ( hash value) သည် ပါဝင်ပစ္စည်းများ၏ အတိအကျပေါင်းစပ်မှုတွင် ထူးခြားပါသည်။ ဘလူးဘယ်ရီသီးတစ်လုံးတောင် ထည့်ထားရင် အရသာက လုံးဝကို မတူပါဘူး။
ဤတွင်တင်ပြထားသောဗားရှင်းသည် ပိုမိုကောင်းမွန်သော FNV-1a 32 bit ဗားရှင်းဖြစ်သည်။ မူရင်းဗားရှင်းကို လိုအပ်ပါက၊ ၎င်းအတွက် ဂဏန်းတွက်စက်လည်း ရှိသည်- Fowler-Noll-Vo FNV1-32 ဟက်ရှ်ကုဒ်တွက်စက်