လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် hash_final နှင့် hash_hmmac အသုံးပြုနည်း

PHP တွင် hash_final နှင့် hash_hmmac အသုံးပြုနည်း

gitbox 2025-05-27

PHP ပရိုဂရမ်တွင် Hash Algorithm သည်ဒေတာ encryption နှင့်စိစစ်အတည်ပြု၏အဓိကအစိတ်အပိုင်းဖြစ်သည်။ အထူးသဖြင့်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုပြုပြင်သည့်အခါ Hash Algorithm ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်စနစ်၏လုံခြုံရေးကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ PHP တွင် hash_final function နှင့် hash_hmac function ကိုပေါင်းစပ်ခြင်းသည်ပိုမိုကောင်းမွန်သော hash processing စွမ်းဆောင်ရည်ကိုပေးနိုင်သည်။ ဤဆောင်းပါးသည် PHP ရှိဤလုပ်ဆောင်မှုနှစ်ခုကိုမည်သို့ပေါင်းစပ်မည်ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။

1 ။ hash_final နှင့် hash_hmac မှအခြေခံနိဒါန်း

hash_hmac function ကို

Hash_HMAC သည် PHP ၏ built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည်သတ်မှတ်ထားသော hash algorithm ကို အသုံးပြု. ပေးထားသောသော့နှင့်မက်ဆေ့ခ်ျအကြောင်းအရာများကို အသုံးပြု. hash တန်ဖိုးများကိုထုတ်လုပ်နိုင်သည်။ HMAC (Hash-based message authentication code) သည်ဒေတာသမာဓိစစ်ဆေးခြင်းနှင့်စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းများတွင်ကျယ်ပြန့်စွာအသုံးပြုသော Hash function ကို အခြေခံ. မက်ဆေ့ခ်ျ authentication code ဖြစ်သည်။

function syntax:

 hash_hmac(string $algo, string $data, string $key, bool $raw_output = false): string
  • $ algo : Hashing algorithm ကို သတ်မှတ် ပါ။

  • $ ဒေတာ : ဆေးထည့်ရန်လိုအပ်သည့်မက်ဆေ့ခ်ျဒေတာ။

  • $ key : hash တွက်ချက်မှုအတွက်အသုံးပြုသောသော့။

  • $ Raw_output : အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါက Binary Data သည် output ကို default is default ဖြစ်သည့် အပြင်,

hash_final function ကို

Hash_Final သည် PHP တွင် Hash တွက်ချက်မှုများကိုအသုံးပြုသောအခါနောက်ဆုံးပေါ် hash တန်ဖိုးကိုရရှိရန်နောက်ထပ်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ Hash_init မှတစ်ဆင့် hash contement တစ်ခုကိုကျွန်ုပ်တို့စတင်လုပ်ဆောင်ပြီးနောက်အချက်အလက်များကို hash_update မှတဆင့်အချက်အလက်များကိုထည့်သွင်းပြီးနောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် hash_final ကို ခေါ်နိုင်သည်။

function syntax:

 hash_final(resource $context, bool $raw_output = false): string
  • $ Context : hash_init ကပြန်လာ hash အခြေအနေ။

  • $ Raw_output : ကုန်ကြမ်းဒေတာကိုပြန်ပို့ဖို့ရှိမရှိသတ်မှတ်ပါတယ်။

2 ။ Surfer Hash processing အောင်မြင်ရန် hash_hmac နှင့် hash_final ကို သုံးပါ

ဒေတာလုံခြုံရေးကိုတိုးတက်စေရန်အတွက်အထူးသဖြင့်အထိခိုက်မခံသောဒေတာထုတ်လွှင့်ခြင်းနှင့်သိုလှောင်ခြင်းများကိုပိုမိုရှုပ်ထွေးသော hash processing အတွက် hash_hmac နှင့် hash_final ကို သုံးနိုင်သည်။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

အဆင့် 1: hash အခြေအနေကိုအစပြုပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် Hash_init ကို နောက်ဆက်တွဲ hash စစ်ဆင်ရေးအတွက်ပြင်ဆင်ရန် hash အခြေအနေကိုစတင်ရန်အသုံးပြုသည်။ ဤနေရာတွင် Sha256 သို့မဟုတ်အခြားအားကောင်းသောဆေးထည့်သော algorithms ကိုသုံးရန်ရွေးချယ်နိုင်သည်။

 $context = hash_init('sha256');

အဆင့် 2: ဒေတာကို update လုပ်ပါ

ထို့နောက် hash context ကိုတစ်ဆင့်ပြီးတစ်ဆင့်တွင်ဆေးထည့်ရန်လိုအပ်သည့်ဒေတာများကိုထည့်ရန် hash_update ကို သုံးပါ။ သငျသညျအလှည့်အတွက်အများအပြားဒေတာလုပ်ကွက်ထည့်ပေါင်းနိုင်ပါတယ်။

 $data = "Sensitive data to hash";
hash_update($context, $data);

အဆင့် 3: hash_hmac နှင့်ပေါင်းစပ်။ စာဝှက်ခြင်း

လုံခြုံရေးကိုပိုမိုတိုးတက်စေရန် hash_hmac သည် authentication နှင့် hash တန်ဖိုးကိုထုတ်လုပ်ရန် hash_hmac နှင့်စာဝှက်ရန်အသုံးပြုနိုင်သည်။ လူတို့၏အလယ်အလတ်တိုက်ခိုက်မှုများကဲ့သို့သောလုံခြုံရေးဆိုင်ရာကိစ္စများကိုကာကွယ်ရန်အလွန်အရေးကြီးသည်။

 $key = "secret-key";
$hmac_hash = hash_hmac('sha256', $data, $key);

အဆင့် 4: နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ

နောက်ဆုံးတွင် Hash အခြေအနေတွင်နောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် hash_final ကို သုံးပါ။ $ Raw_Output ကို စစ်မှန်တဲ့ သတ်မှတ်ထားပါက Binary Data ကိုပြန်ပို့သည်။

 $final_hash = hash_final($context, false);  // နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ(16စျေးနှုန်း)

အဆင့် 5 - နှစ် ဦး စလုံး၏ hash ရလဒ်များကိုပေါင်းစည်းပါ

Hash ၏လုံခြုံရေးကိုမြှင့်တင်ရန် Hash_hmac နှင့် hash_final ၏ရလဒ်များကိုအတူတကွအသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်, hash ရလဒ်နှစ်ခုကိုပေါင်းစည်းပြီး hash processing ကိုထပ်မံလုပ်ဆောင်ပါ။

 $combined_hash = hash('sha256', $final_hash . $hmac_hash);

ဤနည်းအားဖြင့်သင်သည် HMAC နှင့် streaming ဆေးကြောများကိုပေါင်းစပ်ထားသည့်နောက်ဆုံးရလဒ်ရရှိထားသည့်နောက်ဆုံးရလဒ်ကိုရယူထားသည့်ရလဒ်များရရှိထားသည့်အပြင်,

3 ။ နမူနာကုဒ်

Hash_Final function နှင့် hash_hmac ကိုမည်သို့ပေါင်းစပ်မည်ကိုပြသသည့်ကုဒ်နံပါတ်ပြီးပြည့်စုံသောကုဒ်နံပါတ်ဖြစ်သည်။

 <?php
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init('sha256');

// ဆေးထည့်ရန်လိုအပ်သည့်ဒေတာ
$data = "Sensitive data to hash";

// Hash အခြေအနေတွင်ဒေတာများကို update လုပ်ပါ
hash_update($context, $data);

// ဖျော်ဖြေဖို့သော့ကိုသတ်မှတ်HMACစာဝှက်ပယ်
$key = "secret-key";
$hmac_hash = hash_hmac('sha256', $data, $key);

// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$final_hash = hash_final($context, false);  // ရယူ16စျေးနှုန်း字符串

// Hash ရလဒ်များကိုပေါင်းစည်းပြီးနောက်ဆုံး hash ကိုထုတ်လုပ်ပါ
$combined_hash = hash('sha256', $final_hash . $hmac_hash);

// နောက်ဆုံး hash တန်ဖိုးကို output
echo "Final Hash: " . $combined_hash;
?>

4 ။ နိဂုံးချုပ်

hash_final နှင့် hash_hmac ပေါင်းစပ်ပေါင်းစပ်မှုသည်အထူးသဖြင့်အထိခိုက်မခံသောအချက်အလက်များကိုထုတ်ယူသောအခါ Hash processing ၏လုံခြုံရေးကိုများစွာမြှင့်တင်ပေးနိုင်သည်။ Hash_HMAC သည် hash လုပ်ငန်းစဉ်တွင်နောက်ထပ်သော့ချက်စစ်မှန်ကြောင်းအတည်ပြုရန်နောက်ထပ်အလွှာတစ်ခုထည့်သွင်းနိုင်သည် နှစ်ခုကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်၏အချက်အလက်များ၏သမာဓိနှင့်လုံခြုံမှုကိုပိုမိုကောင်းမွန်စွာကာကွယ်နိုင်သည်။