Fowler-Noll-Vo FNV1a-32 ဟက်ရှ်ကုဒ်တွက်စက်
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၈ UTC ၀၀:၁၃:၃၁
နောက်ဆုံး မွမ်းမံပြင်ဆင်သည်- ၂၀၂၆၊ ဇန်နဝါရီ ၁၂ UTC ၁၃:၂၈:၄၆
Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
FNV-1a 32-bit hash function သည် Fowler–Noll–Vo (FNV) hash function မိသားစု၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး hash တန်ဖိုးများကို ကောင်းမွန်သော ဖြန့်ဖြူးမှုကို ထိန်းသိမ်းထားစဉ်တွင် မြန်ဆန်သော hashing အတွက် ဒီဇိုင်းထုတ်ထားသည်။ ၎င်းကို hash table များ၊ checksum များနှင့် data lookup များကဲ့သို့သော application များတွင် အသုံးများသည်။ ၎င်းသည် 32 bit (4 byte) hash code ကို ထုတ်လုပ်ပေးပြီး မကြာခဏ ဂဏန်း ၈ လုံးပါ hexadecimal number အဖြစ် ကိုယ်စားပြုသည်။
FNV-1a မျိုးကွဲသည် လုံခြုံရေးပိုမိုကောင်းမွန်ပြီး မူရင်း FNV-1 လုပ်ဆောင်ချက်ထက် တိုးတက်ကောင်းမွန်သော ဗားရှင်းတစ်ခုဖြစ်သည်။
ထုတ်ဖော်ချက်အပြည့်အစုံ- ဤစာမျက်နှာတွင်အသုံးပြုထားသော hash function ၏ သီးခြားအကောင်အထည်ဖော်မှုကို ကျွန်ုပ်မရေးခဲ့ပါ။ ၎င်းသည် PHP ပရိုဂရမ်းမင်းဘာသာစကားဖြင့် ပါဝင်သော စံလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အဆင်ပြေစေရန် ဤနေရာတွင် လူသိရှင်ကြားရစေရန် ဝဘ်အင်တာဖေ့စ်ကိုသာ ပြုလုပ်ထားပါသည်။
Fowler-Noll-Vo FNV-1a 32 bit Hash Algorithm အကြောင်း
ကျွန်တော်က သင်္ချာပညာရှင် မဟုတ်ပေမယ့် ဒီ hash function ကို ကျွန်တော့်ရဲ့ သင်္ချာပညာရှင် မဟုတ်တဲ့ သူငယ်ချင်းတွေ နားလည်နိုင်တဲ့ ဥပမာတစ်ခုကို အသုံးပြုပြီး ရှင်းပြဖို့ ကြိုးစားပါမယ်။ သိပ္ပံနည်းကျ မှန်ကန်ပြီး ကြောက်စရာကောင်းတဲ့ သင်္ချာဆိုင်ရာ ရှင်းလင်းချက်ကို သင်ပိုနှစ်သက်ရင် တခြားနေရာမှာ ရှာတွေ့နိုင်မယ်လို့ ကျွန်တော် ယုံကြည်ပါတယ် ;-)
ပထမဦးစွာ FNV-1 အယ်လဂိုရီသမ်ကို အထူးဖျော်ရည်ပြုလုပ်သည့် ချက်နည်းတစ်ခုကဲ့သို့ ယူဆကြည့်ကြပါစို့။ သင်ထည့်သွင်းသော ပါဝင်ပစ္စည်းတစ်ခုစီ (ဥပမာ သစ်သီးများ၊ နို့ သို့မဟုတ် ပျားရည်) သည် အက္ခရာများ၊ ဂဏန်းများ သို့မဟုတ် ဖိုင်တစ်ခုလုံးကဲ့သို့သော ဒေတာတစ်ခုကို ကိုယ်စားပြုသည်။
အခု၊ ရည်ရွယ်ချက်က ဒီပါဝင်ပစ္စည်းတွေကို အလွန်တိကျတဲ့နည်းလမ်းနဲ့ ရောမွှေဖို့ပါ၊ ဒါမှ ချက်နည်းမှာ အသေးငယ်ဆုံးပြောင်းလဲမှု (ဥပမာ ဘလူးဘယ်ရီသီးတစ်လုံးထပ်ထည့်တာ) ကတောင် smoothie အရသာကို လုံးဝကွဲပြားစေမှာပါ။ hash လုပ်ဆောင်ချက်တွေက ဒီလိုအလုပ်လုပ်ပါတယ် - သူတို့က ထူးခြားတဲ့ပါဝင်ပစ္စည်းအစုံတိုင်း (သို့မဟုတ် input data) အတွက် ထူးခြားတဲ့ "အရသာ" (သို့မဟုတ် hash value) ကို ဖန်တီးပေးပါတယ်။
FNV-1 အယ်လဂိုရီသမ်က ဒါကို လုပ်ဆောင်ပုံက အဆင့်များစွာပါဝင်တဲ့ လုပ်ငန်းစဉ်တစ်ခု ဖြစ်ပါတယ်။
အဆင့် ၁: အခြေခံ (Offset Basic) ဖြင့် စတင်ပါ။
ဒါကို သင့်ရဲ့ blender ထဲကို အထူး smoothie base တစ်ခု လောင်းထည့်သလို မြင်ယောင်ကြည့်ပါ။ ဒီ base က သင်ဘာပါဝင်ပစ္စည်းတွေထည့်ထည့် အမြဲတမ်း အတူတူပါပဲ။ FNV-1 မှာ ဒါကို "offset basis" လို့ခေါ်ပါတယ် - သာမန်စတင်နံပါတ်တစ်ခုပါ။
အဆင့် ၂: ပါဝင်ပစ္စည်းများကို တစ်ခုချင်းစီထည့်ပါ (ဒေတာကို စီမံဆောင်ရွက်ခြင်း)
အခု ပါဝင်ပစ္စည်းတွေကို တစ်ခုချင်းစီ ထည့်ပါ - စတော်ဘယ်ရီသီးတစ်လုံး၊ ပြီးရင် ငှက်ပျောသီးတစ်လုံး၊ ပြီးရင် ပျားရည်အနည်းငယ် ဆိုပါစို့။ ဒီပါဝင်ပစ္စည်းတွေတစ်ခုစီက ဒေတာတစ်ဘိုက်ကို ကိုယ်စားပြုပါတယ်။
အဆင့် ၃: လျှို့ဝှက်မြှောက်ကိန်း (FNV Prime) နှင့် ရောစပ်ပါ။
ပါဝင်ပစ္စည်းတစ်ခုချင်းစီကိုထည့်ပြီးနောက် blender ခလုတ်ကိုနှိပ်လိုက်ပါ၊ ဒါပေမယ့် အလှည့်အပြောင်းကတော့ ဒီလိုပါ- blender က အရာအားလုံးကို FNV prime လို့ခေါ်တဲ့ လျှို့ဝှက် "မှော်နံပါတ်" နဲ့ မြှောက်ပေးပါတယ်။ ဒါက အရာအားလုံးကို ကောင်းကောင်းရောနှောဖို့ ကူညီပေးပါတယ်။
အဆင့် ၄: Dash of Magic (XOR လုပ်ဆောင်ချက်) ထည့်ပါ
နောက်ထပ်ပါဝင်ပစ္စည်းမထည့်ခင်မှာ မှော်မှုန့်အနည်းငယ်ဖြူးပါ (ဒါက XOR လုပ်ဆောင်ချက်ပါ)။ အရသာကို မမျှော်လင့်ထားတဲ့နည်းလမ်းတွေနဲ့ ပြောင်းပြန်လှန်လိုက်သလိုပါပဲ၊ သေးငယ်တဲ့ပြောင်းလဲမှုတွေကတောင် ကြီးမားတဲ့ခြားနားချက်ကို ဖြစ်စေပါတယ်။
အဆင့် ၅: ပြီးသည်အထိ ထပ်ခါတလဲလဲလုပ်ဆောင်ပါ
အရာအားလုံးကို စီမံပြီးတဲ့အထိ ပါဝင်ပစ္စည်းအသစ်တစ်ခုစီပြီးတိုင်း မှော်အတတ်ကို ရောမွှေပြီး ဖြန်းနေရတယ်။
အဆင့် ၆: နောက်ဆုံး Smoothie (Hash Value)
ပြီးသွားရင် smoothie ကို လောင်းထည့်ပါ။ နောက်ဆုံးအရသာ (hash value) က ပါဝင်ပစ္စည်းတွေ ပေါင်းစပ်မှုရဲ့ ထူးခြားချက်ပါ။ ဘလူးဘယ်ရီတစ်လုံးတောင် ထပ်ထည့်ရင် အရသာက လုံးဝကွဲပြားသွားပါလိမ့်မယ်။
ဒီမှာပြထားတဲ့ဗားရှင်းက ပိုကောင်းအောင်လုပ်ထားတဲ့ FNV-1a 32 bit ဗားရှင်းပါ။ မူရင်းဗားရှင်းလိုအပ်ရင် ကျွန်တော့်မှာ ဂဏန်းတွက်စက်လည်းရှိပါတယ်- လင့်ခ်
နောက်ထပ်စာဖတ်ခြင်း။
ဤပို့စ်ကို သင်နှစ်သက်ပါက၊ ဤအကြံပြုချက်များကို သင်လည်း နှစ်သက်နိုင်ပါသည်-
