hash_final function သည် PHP တွင် hash တန်ဖိုးများကိုထုတ်ပေးသော PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းကို hash_init နှင့် hash_update နှင့် hash context ကို ဖန်တီး. ဒေတာခြေလှမ်းကိုအဆင့်ဆင့်ကိုအသစ်ပြောင်းရန်အသုံးပြုသည်။ hash_final ကို hash စစ်ဆင်ရေးကိုဖြည့်စွက်ပြီးနောက်ဆုံး hash တန်ဖိုးကိုပြန်ပို့ရန်အသုံးပြုသည်။
string hash_final ( resource $context [, bool $raw_output = false ] )
$ Context : hash_init function ကိုအားဖြင့် shex ကို adxext တစ်ခုဖြစ်ပါတယ်။
$ Raw_output : အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါက Hash တန်ဖိုးကို binary format ဖြင့်ပြန်ပို့ပါ။ မှားယွင်းစွာ သတ်မှတ်ပါက Hash တန်ဖိုးကို hexadecimal format ဖြင့်ပြန်ပို့ပါ။
APIs အများအပြားတွင်ကွန်ယက်တောင်းဆိုမှုများကိုလက်မှတ်ရေးထိုးမှုများနှင့်အတူလိုက်ပါရမည်ဖြစ်သည်။ ရည်ရွယ်ချက်မှာတောင်းဆိုမှုများကိုအနှောင့်အယှက်ပေးခြင်းမှကာကွယ်ရန်ဖြစ်သည်။ hash လုပ်ဆောင်ချက်များကို အသုံးပြု. လက်မှတ်များကိုထုတ်လုပ်ခြင်းအားဖြင့်ထုတ်လွှင့်စဉ်အတွင်းတောင်းဆိုထားသောအကြောင်းအရာများအတွက်ရှေ့နောက်ညီညွတ်မှုနှင့်လုံခြုံမှုကိုသေချာစေနိုင်သည်။
ကျွန်ုပ်တို့သည် PHP မှတစ်ဆင့်လက်မှတ်ထုတ်ပေးရန်နှင့်ဤလုပ်ငန်းစဉ်ကိုပြီးမြောက်ရန် hash_final function ကိုအသုံးပြုရန်လိုအပ်သည်ဆိုပါစို့။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
hash အခြေအနေကိုစတင်ရန်:
ပထမ ဦး စွာ hash context ကို စတင်ရန် နှင့်သင့်လျော်သော hash algorithm ကိုရွေးချယ်ပါ ။
$context = hash_init('sha256');
Hash အခြေအနေကို update:
ထို့နောက်ကျွန်ုပ်တို့သည် Hash အခြေအနေတွင်တောင်းဆိုမှု parameters များနှင့်သော့ကိုတဖြည်းဖြည်းချင်းတိုးပွားလာသည်။ ဤနေရာတွင်ကျွန်ုပ်တို့သည်တောင်းဆိုထားသော parameters များကိုဥပမာတစ်ခုအဖြစ်ယူဆောင်လာသည်။
$params = [
'method' => 'POST',
'url' => 'https://gitbox.net/api/v1/order',
'timestamp' => time(),
'api_key' => 'your_api_key'
];
foreach ($params as $key => $value) {
hash_update($context, $key . '=' . $value);
}
နောက်ဆုံးလက်မှတ်ကိုထုတ်လုပ်ပါ။
နောက်ဆုံး hash တန်ဖိုးကို hash_final function မှတဆင့်လက်မှတ်အဖြစ်ထုတ်လုပ်သည်။ ဤနေရာတွင် hexadecimal format ကိုအသုံးပြုရန်ရွေးချယ်သည်။
$signature = hash_final($context, false);
ဤတွင်လက်မှတ်ကိုထုတ်ဖော်ပြသနိုင်ပြီး API တောင်းဆိုမှုတစ်ခုသို့မည်သို့ဖြည့်ဆည်းပေးရမည်ကိုပြသသောနမူနာကုဒ်ဖြစ်သည်။
<?php
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init('sha256');
// တောင်းဆိုမှုကိုတောင်းဆို
$params = [
'method' => 'POST',
'url' => 'https://gitbox.net/api/v1/order',
'timestamp' => time(),
'api_key' => 'your_api_key'
];
// 将တောင်းဆိုမှုကိုတောင်းဆို添加到哈希上下文
foreach ($params as $key => $value) {
hash_update($context, $key . '=' . $value);
}
// လက်မှတ်ထုတ်ပေးပါ
$signature = hash_final($context, false);
// Print Signature ရလဒ်များကိုပုံနှိပ်ပါ
echo 'Generated Signature: ' . $signature;
// ကွန်ယက်တောင်းဆိုမှုများကိုတည်ဆောက်ရန်ထုတ်လုပ်သောလက်မှတ်များထပ်မံအသုံးပြုသည်
// နမူနာတောင်းဆိုမှု
$request_data = [
'method' => 'POST',
'url' => 'https://gitbox.net/api/v1/order',
'timestamp' => time(),
'api_key' => 'your_api_key',
'signature' => $signature
];
// တောင်းဆိုမှုကို execute ဖို့ကုဒ်
// ဒီမှာအသုံးပြုခဲ့သည်cURLသင်ကြိုက်နှစ်သက်လျှင်တောင်းဆိုမှုကိုပေးပို့ပါ,တောင်းဆိုမှုကိုဒေတာကို Pass
?>
လက်တွေ့ကျသောအပလီကေးရှင်းများ၌လက်မှတ်ထုတ်ပေးပြီးနောက်၎င်းကိုများသောအားဖြင့် API server သို့တောင်းဆိုမှု၏တစ်စိတ်တစ်ပိုင်းအဖြစ်ပို့သည်။ ဤတွင်ထုတ်လုပ်ထားသောလက်မှတ်ကို Post တောင်းဆိုမှုတစ်ခုသို့မည်သို့ချိတ်ဆက်ရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$ch = curl_init();
// ကွက်ကွက်ကေျာင်းcURLမေးမြန်း
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/api/v1/order');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request_data));
// ကရိယာတန်းဆာcURLမေးမြန်း
$response = curl_exec($ch);
// ရုပ်သိမ်းခြင်းcURLရုံးထိုင်အချိန်ကာလ
curl_close($ch);
// output ကိုတုံ့ပြန်မှု
echo $response;
ဤနည်းအားဖြင့်တောင်းဆိုမှုရှိအချက်အလက်များကိုထုတ်လွှင့်စဉ်အတွင်းအချက်အလက်များအားအနှောင့်အယှက်မပေးနိုင်ကြောင်းသေချာစေရန် API ဆာဗာသည်တောင်းဆိုမှု၏တရားဝင်မှုကိုအတည်ပြုရန်တူညီသောလက်မှတ် algorithm ကိုအသုံးပြုနိုင်သည်။