CRC-32C ဟက်ရှ်ကုဒ်တွက်စက်
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၇ UTC ၁၈:၄၈:၄၂
စာသားထည့်သွင်းမှု သို့မဟုတ် ဖိုင်အပ်လုဒ်အပေါ် အခြေခံ၍ hash ကုဒ်ကို တွက်ချက်ရန် CRC-32C (Cyclic Redundancy Check 32 bit၊ C ပုံစံကွဲ) hash လုပ်ဆောင်ချက်ကို အသုံးပြုသည့် Hash ကုဒ်ဂဏန်းတွက်စက်။CRC-32C Hash Code Calculator
Cyclic Redundancy Check (CRC) သည် ဒေတာကုန်ကြမ်းတွင် မတော်တဆပြောင်းလဲမှုများကို သိရှိရန် အသုံးများသော အမှား-ထောက်လှမ်းကုဒ်တစ်ခုဖြစ်သည်။ နည်းပညာအရ cryptographic hash လုပ်ဆောင်ချက်မဟုတ်သော်လည်း၊ CRC-32 သည် မပြောင်းလဲနိုင်သော အရှည်ထည့်သွင်းမှုမှ ပုံသေအရွယ်အစားအထွက် (32 bits) ကို ထုတ်လုပ်နိုင်ခြင်းကြောင့် hash အဖြစ် မကြာခဏ ရည်ညွှန်းပါသည်။ ဤစာမျက်နှာတွင်တင်ပြထားသောဗားရှင်းသည် ခေတ်မီ CPU များ (SSE 4.2 မှတဆင့် ဟာ့ဒ်ဝဲများ မကြာခဏ အရှိန်မြှင့်ပေးသည့် ပိုမိုကောင်းမွန်သော၊ စမတ်ကျသော) ဗားရှင်းအသစ်ဖြစ်သည့် CRC-32C ဗားရှင်းဖြစ်သည်။
ထုတ်ဖော်ချက်အပြည့်အစုံ- ဤစာမျက်နှာတွင်အသုံးပြုထားသော hash function ၏ သီးခြားအကောင်အထည်ဖော်မှုကို ကျွန်ုပ်မရေးခဲ့ပါ။ ၎င်းသည် PHP ပရိုဂရမ်းမင်းဘာသာစကားဖြင့် ပါဝင်သော စံလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အဆင်ပြေစေရန် ဤနေရာတွင် လူသိရှင်ကြားရစေရန် ဝဘ်အင်တာဖေ့စ်ကိုသာ ပြုလုပ်ထားပါသည်။
CRC-32C Hash Algorithm အကြောင်း
ကျွန်ုပ်သည် သင်္ချာပညာရှင်မဟုတ်သော်လည်း ဤ hash လုပ်ဆောင်ချက်ကို ရိုးရှင်းသော ဥပမာဖြင့် ရှင်းပြရန် ကြိုးစားပါမည်။ cryptographic hash လုပ်ဆောင်ချက်များစွာနှင့်မတူဘဲ၊ ၎င်းသည် အထူးရှုပ်ထွေးသော အယ်လဂိုရီသမ်မဟုတ်ပါ၊ ထို့ကြောင့် ၎င်းသည် အဆင်ပြေလိမ့်မည် ;-)
သင်သည် စာတစ်စောင်ပို့နေသည်ဟု မြင်ယောင်ကြည့်ပါ၊ သို့သော် လက်ခံသူထံ မရောက်ရှိမီ ၎င်းသည် ပျက်စီးသွားမည်ကို စိုးရိမ်နေပါသည်။ စာ၏အကြောင်းအရာအပေါ်အခြေခံ၍ သင်သည် CRC-32 checksum ကိုတွက်ချက်ပြီး စာအိတ်ပေါ်တွင်ရေးပါ။ လက်ခံသူသည် စာကိုလက်ခံရရှိသောအခါ၊ သူ သို့မဟုတ် သူမသည် checksum ကိုလည်း တွက်ချက်နိုင်ပြီး သင်ရေးထားသည်နှင့် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးနိုင်သည်။ ထိုသို့ဖြစ်လျှင် လမ်းတစ်လျှောက်တွင် စာသည် ပျက်စီးခြင်း သို့မဟုတ် ပြောင်းလဲခြင်း မရှိပါ။
CRC-32 လုပ်ဆောင်ပုံသည် အဆင့်လေးဆင့် ဖြစ်သည်-
အဆင့် 1- အပိုနေရာအချို့ကို ထည့်ပါ (padding)
- CRC သည် မက်ဆေ့ချ်၏အဆုံးတွင် အခန်းအနည်းငယ်ထပ်ထည့်သည် (ပုံးတစ်ခုထဲတွင် မြေပဲထုပ်များကဲ့သို့)။
- ၎င်းသည် အမှားများကို ပိုမိုလွယ်ကူစွာ သိရှိနိုင်ရန် ကူညီပေးသည်။
အဆင့် 2- မှော်အုပ်စိုး (ပိုလီအမည်)
- CRC-32 သည် ဒေတာကိုတိုင်းတာရန် အထူး "မှော်ပေတံ" ကို အသုံးပြုသည်။
- ဤအရာအား အဖုအထစ်များရှိသော ပုံစံကဲ့သို့ တွေးကြည့်ပါ (၎င်းသည် များပြားလှသော်လည်း ထိုစကားလုံးအတွက် စိတ်မပူပါနှင့်)။
- CRC-32 အတွက် အသုံးအများဆုံး "ပေတံ" သည် ပုံသေပုံစံဖြစ်သည်။
အဆင့် 3- အုပ်ထိန်းကို ပွတ်ဆွဲခြင်း (ဌာနခွဲလုပ်ငန်းစဉ်)
- ယခု CRC သည် စာတိုကိုဖြတ်၍ ပေတံကို ရွှေ့သည်။
- နေရာတစ်ခုစီတွင်၊ အဖုအထစ်များနှင့် grooves များတန်းစီခြင်းရှိမရှိစစ်ဆေးသည်။
- လိုင်းမတင်ပါက CRC က မှတ်စုတစ်ခု ပြုလုပ်သည် (၎င်းကို လှန်လိုက်သောခလုတ်များ အဖွင့်အပိတ်များကဲ့သို့ ရိုးရိုး XOR ကို အသုံးပြု၍ လုပ်ဆောင်သည်)။
- ၎င်းသည် အဆုံးအထိ လျှောကျပြီး လှန်လိုက်သောခလုတ်များကို ဆက်လက်လုပ်ဆောင်သည်။
အဆင့် 4- နောက်ဆုံးရလဒ် ( Checksum )
- စာတိုတစ်ခုလုံးကိုဖြတ်၍ ပေတံကို ပွတ်ဆွဲပြီးနောက်၊ မူရင်းဒေတာကိုကိုယ်စားပြုသည့် ဂဏန်းငယ် (32 bits ရှည်) ကျန်ခဲ့သည်။
- ဤနံပါတ်သည် မက်ဆေ့ချ်အတွက် ထူးခြားသော လက်ဗွေနှင့်တူသည်။
- ဤသည်မှာ CRC-32 ချက်လက်မှတ်ဖြစ်သည်။
စာမျက်နှာပေါ်တွင်တင်ပြထားသောဗားရှင်းသည် ဦးစားပေးဗားရှင်းဖြစ်သင့်သည်၊ အထူးသဖြင့် ၎င်းကိုဟာ့ဒ်ဝဲအရှိန်မြှင့်ထားသော CPU (SSE 4.2 နှင့်အထက်) ကိုအသုံးပြုနေပါက၊ အခြားဗားရှင်းများနှင့် တွဲဖက်အသုံးပြုနိုင်မှုမလိုအပ်ပါ။
အခြားမျိုးကွဲများအတွက်လည်း ကျွန်ုပ်တွင် ဂဏန်းပေါင်းစက်များရှိသည်။