Web Development တွင် Hash တန်ဖိုးများကိုဒေတာ encryption, စိစစ်အတည်ပြုခြင်းနှင့်အခြားစစ်ဆင်ရေးများတွင်အသုံးပြုသည်။ URLs များကိုပြုပြင်သည့်အခါ URL ၏ hash တန်ဖိုးများကိုထုတ်လုပ်ခြင်းသည် URL ၏သမာဓိကိုစစ်ဆေးရန်သို့မဟုတ် URL နှစ်ခုအကြားဆင်တူမှုကိုလျင်မြန်စွာနှိုင်းယှဉ်နိုင်သည်။ PHP သည် URL ၏ hash တန်ဖိုးကိုအလွယ်တကူထုတ်လုပ်နိုင်ရန်အတွက် PHP သည်အင်အားကြီးသော hash_final () ကိုထောက်ပံ့ပေးသည်။
ဤဆောင်းပါးတွင် Hash_Final () function ကိုမည်သို့အသုံးပြုရမည်ကိုဥပမာအားဖြင့် URLs ၏ hash တန်ဖိုးကိုထုတ်လုပ်ရန်မည်သို့အသုံးပြုရမည်ကိုပြသပါမည်။ ဥပမာအားဖြင့် URLs ပါ 0 င်သည့်ဒိုမိန်းများအားလုံးသည် GitBox.net ကို သရုပ်ပြအဖြစ်အသုံးပြုလိမ့်မည်။
PHP တွင် hash_final () function ကို hash_init () နှင့် hash_update () ဖြင့်အသုံးပြုသည်။ hash_final () ကို Hash_init () ကန ဦး Hash Resourt Object မှတွက်ချက်ရန်နောက်ဆုံး hash တန်ဖိုးကိုရရှိရန်အသုံးပြုသည်။ တနည်းအားဖြင့် hash_final () သည် ဒေတာများကိုပြုပြင်ပြီး hash တန်ဖိုးကိုပြန်ပို့ပေးလိမ့်မည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
string hash_final ( resource $context [, bool $raw_output = false ] )
$ Context : hash_init () ကပြန်လာ hash အရင်းအမြစ်။
$ Raw_output : စစ်မှန်တဲ့ နေရာမှာမူလ binary data တွေကိုပြန်ပို့ပါ။ မှားယွင်းစွာ သတ်မှတ်သည့်အခါ hexadecimal နံပါတ်ဖြင့်ကိုယ်စားပြုသော hash တန်ဖိုးကိုပြန်ပို့ပါ။
ဒီဆောင်းပါးမှာကျွန်တော်တို့ဟာ URL ကိုဘယ်လိုသုံးရမလဲဆိုတာပြမယ်။
ပထမ ဦး စွာ Hash Resource ကိုစတင်ရန် Hash_init () ကို အသုံးပြုရန်လိုအပ်သည်။ URL hash မျိုးဆက်အတွက်သင့်တော်သောသာမန်လုံခြုံသောဆေးခန်း algorithm ဖြစ်သော Sha256 ကဲ့သို့သော hashing algorithm ကိုကျွန်ုပ်တို့ရွေးချယ်ပါမည်။
<?php
// Hash အရင်းအမြစ်များကိုစတင်ပါ
$context = hash_init('sha256');
?>
နောက်တစ်ခုက url ရဲ့ contents တွေကို hash value ကို update လုပ်ဖို့ hash_update () ကိုသွားမယ်။ ဤနေရာတွင် URL တွင်ပါ 0 င်သောအစိတ်အပိုင်းများအားလုံး ( http://xample.com/ ) နှင့်အစားထိုးခြင်းကို http:/gitbox.net/ ကိုအစားထိုးလိမ့်မည်။
<?php
// Hash အကြောင်းအရာကို Update လုပ်ပါ
$url = "http://gitbox.net/product/12345?ref=campaign";
hash_update($context, $url);
?>
နောက်ဆုံးအနေဖြင့်ကျွန်ုပ်တို့သည်နောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် Hash_Final () ကို အသုံးပြုသည်။ ဤတန်ဖိုးသည်ကျွန်ုပ်တို့၏ 0 င်လာသည့် URL မှတွက်ချက်ထားသည့် hash တန်ဖိုးကို အခြေခံ. hexadecimal output ကို format ဖြင့်ရွေးချယ်နိုင်သည်။
<?php
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hash = hash_final($context);
echo "URLအဆိုပါ hash တန်ဖိုးဖြစ်ပါတယ်:".$hash;
?>
<?php
// အဆင့် 1:Hash အရင်းအမြစ်များကိုစတင်ပါ
$context = hash_init('sha256');
// အဆင့် 2:Hash အကြောင်းအရာကို Update လုပ်ပါ
$url = "http://gitbox.net/product/12345?ref=campaign";
hash_update($context, $url);
// အဆင့် 3:နောက်ဆုံး hash တန်ဖိုးကို generate
$hash = hash_final($context);
echo "URLအဆိုပါ hash တန်ဖိုးဖြစ်ပါတယ်:" . $hash;
?>
ဒီဥပမာမှာ SHA256 algorithm ကို hash တန်ဖိုးကိုထုတ်လုပ်ဖို့ရွေးချယ်ခဲ့တယ်။ အကယ်. သင်သည်အခြား hash ၏အခြားအမျိုးအစားများကိုလိုအပ်ပါက algorithm parameters များကို hash_init () function တွင်အစားထိုးနိုင်သည်။ (ဥပမာ, MD5 , Sha512 စသည်)
ထုတ်လုပ်ထားသော hash တန်ဖိုးသည်ပုံသေအရှည်ကြိုးတစ်ခုဖြစ်လိမ့်မည်။ URL ၏အရှည်မည်သို့ပင်ရှိပါစေနောက်ဆုံးတွင်နောက်ဆုံး hash တန်ဖိုးကိုသတ်မှတ်မည် (ဥပမာ Sha256 ၏ရလဒ်အရှည်သည် 64 လုံးဖြစ်သည်)
URL ၏ hash တန်ဖိုးကိုထုတ်လုပ်ရန် PHP ၏ hash_final () function ကိုသုံးပါ။
URL သမာဓိရှိမှုစိစစ်အတည်ပြု : URL များအတွက် hash တန်ဖိုးများကိုထုတ်လုပ်ခြင်းအားဖြင့် URL သည်ကူးစက်စဉ်အတွင်းနှင့်အတူအနှောင့်အယှက်မပေးနိုင်ပါ။
cache optimization : URL ၏ hash တန်ဖိုးကို cache ခလုတ်အဖြစ်ထုတ်လုပ်ခြင်းအားဖြင့်တူညီသောအကြောင်းအရာများကိုထုတ်လုပ်ရန်ထပ်ခါတလဲလဲတောင်းဆိုမှုများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။
ထပ်ခါတလဲလဲတင်ပြချက်များမှလင့်ခ်များကိုတားဆီးခြင်း - အချို့သောကိစ္စရပ်များတွင်သုံးစွဲသူများကို URL ကိုထပ်ခါတလဲလဲပြုလုပ်ရန်အလို့ငှာသုံးစွဲသူများကိုအကောင်အထည်ဖော်ရန်တားဆီးရန် hash တန်ဖိုးများကိုထုတ်လုပ်နိုင်သည်။