လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> HMAC (Hash-based message authentication code) ကိုထုတ်လုပ်ရန် PHP Hash () function ကိုသုံးပါ။

HMAC (Hash-based message authentication code) ကိုထုတ်လုပ်ရန် PHP Hash () function ကိုသုံးပါ။

gitbox 2025-07-01

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

HMAC ဆိုတာဘာလဲ။

HMAC ၏အဓိကအယူအဆသည်မက်ဆေ့ခ်ျမတိုင်မီနှင့်အပြီးသော့ကို splice လုပ်ရန်ဖြစ်သည်။ ထို့နောက် splice ပြီးနောက် string ကို hash ။ ရိုးရိုး hash တန်ဖိုးများနှင့်နှိုင်းယှဉ်လျှင် HMAC သည်မက်ဆေ့ခ်ျများကိုထိထိရောက်ရောက်ချပြီးအလွယ်တကူမပြုလုပ်နိုင်သောသတင်းများကိုထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။

HMAC တွက်ချက်မှုဖော်မြူလာ:

 HMAC(key, message) = hash((key ⊕ opad) || hash((key ⊕ ipad) || message))

အတွက်

  • ရံပုံရိပ် ဆက်သွယ်မှုစစ်ဆင်ရေးကိုဆိုလိုသည်

  • Bitwegy Xor ကိုဖော်ပြသည်

  • opad သည်ပြင်ပဖြည့်သည်, 0x5C ထပ်ဖြည့်ပါ

  • အိုင်ပက်ဒ်သည် အတွင်းဖြည့်သည်, 0x36 ထပ်ဖြည့်သည်

hash () function ကို hash () function ကိုအတူ function ကိုအကောင်အထည်ဖော်ခြင်း

အောက်ဖော်ပြပါ PHP hash () function ကို အသုံးပြု. HMAC ကိုမည်သို့အသုံးပြုရမည်နည်း။

 <?php
function hmac_hash($algo, $key, $data) {
    $blocksize = 64; // အများဆုံးhashfunction ကိုပိတ်ပင်တားဆီးမှုအရွယ်အစားဖြစ်ပါတယ်64ဒရယ်
    if (strlen($key) > $blocksize) {
        $key = hash($algo, $key, true); // သော့ကရှည်လျားလွန်းလျှင်,ပဌမhashတစ် ဦး fixed-length binary string ကိုဖွဲ့စည်းရန်
    }
    $key = str_pad($key, $blocksize, chr(0x00)); // အရွယ်အစားကိုပိတ်ဆို့ရန်သော့ကိုဖြည့်ပါ

    $ipad = str_repeat(chr(0x36), $blocksize);
    $opad = str_repeat(chr(0x5c), $blocksize);

    $inner = $key ^ $ipad;
    $outer = $key ^ $opad;

    $inner_hash = hash($algo, $inner . $data, true); // အတွင်းပိုင်း hash,output binary format ကို
    $hmac = hash($algo, $outer . $inner_hash);

    return $hmac;
}

// စမ်းသပ်မှု
$key = "secretkey";
$message = "The quick brown fox jumps over the lazy dog";

echo "HMAC-SHA256: " . hmac_hash('sha256', $key, $message);
?>

အထက်ပါကုဒ်သည် HMAC တွက်ချက်မှုများကိုမက်ဆေ့ခ်ျနှင့်သော့ချက်အပေါ် HMAC တွက်ချက်မှုများကိုပြုလုပ်ရန် SHA-256 algorithm ကို အသုံးပြု. hexadecimal string ကိုပြန်ပို့သည်။

လက်တွေ့ကျတဲ့ applications များအတွက်မှတ်စုများ

  • PHP နှင့်ပါ 0 င်သည့် hash_hmac () function ကိုအသုံးပြုရန်အကြံပြုသည်။

  • အဓိကအားဖြင့်သော့ချက်ကိုယေဘုယျအားဖြင့် Hash Block Size နှင့်အတူတူဖြစ်ရန်အကြံပြုသည်။

  • binary output ကိုအသုံးပြုခြင်း (တတိယအချက်အချာကို စစ်မှန်တဲ့အချက် ) ကိုအသုံးပြုခြင်းသည်လုပ်ငန်းလည်ပတ်မှုများကိုရှာဖွေရန်အထောက်အကူဖြစ်သည်။

  • HMAC ကိုအဓိကအားဖြင့်မက်ဆေ့ခ်ျ authentication အတွက်အသုံးပြုသည်။ သော့များကိုလုံလုံခြုံခြုံစီမံရန်လိုအပ်သည်။

အကျဉ်းချုပ်

PHP သည်အဆင်ပြေသော hash_hmac () function ကိုရှိပြီးသား hash () function ကိုအသုံးပြုခြင်း၏အခြေခံမူများကိုအသုံးပြုခြင်းသည်လုံခြုံသော hash ယန္တရားကိုပိုမိုနားလည်ရန်ကူညီပေးပါမည်။

သင်ပိုမိုသိလိုပါက https://gitbox.net ဆက်စပ်သောအရင်းအမြစ်များကိုသင်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။