ကွန်ယက်လုံခြုံရေးနှင့်အချက်အလက်သမာဓိစစ်ဆေးမှုများတွင် HMAC (Hash-based message authentication code) သည်များသောအားဖြင့်အသုံးပြုသောထိရောက်သောနည်းပညာဖြစ်သည်။ ၎င်းသည်မက်ဆေ့ခ်ျများ၏သမာဓိနှင့်အထောက်အထားများကိုစစ်မှန်ကြောင်းအတည်ပြုရန် hash လုပ်ဆောင်ချက်များနှင့်သော့များကိုပေါင်းစပ်ထားသည်။ PHP ၏ built-in hash_hmac () function သည် HMAC ကိုထုတ်လုပ်ရန်အဆင်ပြေသောကိရိယာများကိုထောက်ပံ့ပေးနိုင်သည်။
HMAC ၏အဓိကအယူအဆသည်မက်ဆေ့ခ်ျမတိုင်မီနှင့်အပြီးသော့ကို splice လုပ်ရန်ဖြစ်သည်။ ထို့နောက် splice ပြီးနောက် string ကို hash ။ ရိုးရိုး hash တန်ဖိုးများနှင့်နှိုင်းယှဉ်လျှင် HMAC သည်မက်ဆေ့ခ်ျများကိုထိထိရောက်ရောက်ချပြီးအလွယ်တကူမပြုလုပ်နိုင်သောသတင်းများကိုထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။
HMAC တွက်ချက်မှုဖော်မြူလာ:
HMAC(key, message) = hash((key ⊕ opad) || hash((key ⊕ ipad) || message))
အတွက်
ရံပုံရိပ် ဆက်သွယ်မှုစစ်ဆင်ရေးကိုဆိုလိုသည်
⊕ Bitwegy Xor ကိုဖော်ပြသည်
opad သည်ပြင်ပဖြည့်သည်, 0x5C ထပ်ဖြည့်ပါ
အိုင်ပက်ဒ်သည် အတွင်းဖြည့်သည်, 0x36 ထပ်ဖြည့်သည်
အောက်ဖော်ပြပါ 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 ကိုပြန်ပို့သည်။
PHP နှင့်ပါ 0 င်သည့် hash_hmac () function ကိုအသုံးပြုရန်အကြံပြုသည်။
အဓိကအားဖြင့်သော့ချက်ကိုယေဘုယျအားဖြင့် Hash Block Size နှင့်အတူတူဖြစ်ရန်အကြံပြုသည်။
binary output ကိုအသုံးပြုခြင်း (တတိယအချက်အချာကို စစ်မှန်တဲ့အချက် ) ကိုအသုံးပြုခြင်းသည်လုပ်ငန်းလည်ပတ်မှုများကိုရှာဖွေရန်အထောက်အကူဖြစ်သည်။
HMAC ကိုအဓိကအားဖြင့်မက်ဆေ့ခ်ျ authentication အတွက်အသုံးပြုသည်။ သော့များကိုလုံလုံခြုံခြုံစီမံရန်လိုအပ်သည်။
PHP သည်အဆင်ပြေသော hash_hmac () function ကိုရှိပြီးသား hash () function ကိုအသုံးပြုခြင်း၏အခြေခံမူများကိုအသုံးပြုခြင်းသည်လုံခြုံသော hash ယန္တရားကိုပိုမိုနားလည်ရန်ကူညီပေးပါမည်။
သင်ပိုမိုသိလိုပါက https://gitbox.net ဆက်စပ်သောအရင်းအမြစ်များကိုသင်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။