PHP တွင် Hashing algorithm တစ်ခုသည် File Content သို့မဟုတ်ကြိုးများကဲ့သို့သောမည်သည့်အရှည်ရှိအချက်အလက်များနှင့်ကြိုးများဖြစ်သော file contents သို့မဟုတ် strings များအဖြစ်ပြောင်းလဲစေသောနည်းစနစ်တစ်ခုဖြစ်သည်။ အများအားဖြင့် Hashing algorithms များတွင် MD5, Sha-1, Sha-256 စသဖြင့်ဖိုင်များလုပ်ဆောင်သောအခါဖိုင်၏သမာဓိကိုစစ်ဆေးရန်နှင့်ဖိုင်၏သမာဓိကိုစစ်ဆေးရန်ဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ရန်နှင့်ဖိုင်ကိုအကောင်အထည်ဖော်ရန်အသုံးပြုနိုင်သည်။
PHP တွင်ဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_final function ကိုသုံးနိုင်သည်။ အောက်တွင်ဖော်ပြထားသည့် I Hash_Final function ကို အသုံးပြု. ဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ရန်နှင့်သင်နားလည်ရန်တိကျသောကုဒ်များကိုအသုံးပြုသည်။
hash_final function သည် Hash တွက်ချက်မှုများကိုပြီးစီးရန်အသုံးပြုသော PHP တွင်အသုံးပြုသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းကို hash_init နှင့် hash_update နှင့် တွဲဖက်. အသုံးပြုလေ့ရှိသည်။ ကြီးမားသောအချက်အလက်များ (ဥပမာဖိုင်များကဲ့သို့) ပြုပြင်သည့်အခါ၎င်းသည် chunked computing hash တန်ဖိုးများကိုခွင့်ပြုသည်။
string hash_final ( resource $context [, bool $raw_output = false ] )
$ Context : ဤသည်လက်ရှိ hash တွက်ချက်မှုအခြေအနေကိုသိမ်းဆည်းရန်အသုံးပြုသော hash_init function မှစတင်သောအရင်းအမြစ်တစ်ခုဖြစ်သည်။
$ RAW_OUTPATE : အကယ်. မှန်ကန် ပါက hash တန်ဖိုးကို Binary format ဖြင့်ပြန်ပို့ပါ။ အကယ်. မှားယွင်းပါက hash တန်ဖိုးကို hexadecimal format ဖြင့်ပြန်ပို့ပါ။
ဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_final function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသောရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
Hash တွက်ချက်မှုအခြေအနေကိုစတင်ရန် hash_init function ကိုသုံးပါ။
ဖိုင်ကိုအတုံးများဖြင့်ဖတ်ရန် hash_update function ကို သုံး. hash အခြေအနေကိုမွမ်းမံပါ။
နောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် hash_final function ကိုသုံးပါ။
<?php
// ဖိုင်လမ်းကြောင်း
$file = 'path/to/your/file.txt';
// Hash တွက်ချက်မှုကိုအစပြုပါ,Hashing algorithm ကိုရွေးချယ်ပါ(ကဲ့သို့ md5, sha256 စောင့်)
$context = hash_init('sha256');
// ဖိုင်ကိုဖွင့်ပြီးဖတ်ပါ
$handle = fopen($file, 'rb');
if ($handle) {
// တစ်ခုချင်းစီကိုဖတ်ပါ 8192 ဒရယ်
while (!feof($handle)) {
// ဖိုင်အကြောင်းအရာကိုဖတ်ပါ
$data = fread($handle, 8192);
// Hash တန်ဖိုးကို Update လုပ်ပါ
hash_update($context, $data);
}
fclose($handle);
} else {
echo "ဖိုင်ကိုဖွင့ ်. မရပါ!";
exit;
}
// ဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ပါ
$hash = hash_final($context);
// output ကို hash တန်ဖိုး
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $hash;
?>
ပထမ ဦး စွာ Hash တွက်ချက်မှုကိုအစပြုရန် hash_init function ကိုခေါ်ပါ။ SHA256 ကို Hashing algorithm အဖြစ်ရွေးချယ်ထားပြီး MD5 , Sha1 စသည့်အခြားနည်းလမ်းများကိုလည်းကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
fopen function ကိုသုံးပါဖိုင်ကိုဖွင့်ရန် File ကိုဖွင့် ပါ ။ ဤနည်းအားဖြင့်ကြီးမားသောဖိုင်များကိုပြုပြင်သည့်အခါဖိုင်တစ်ခုလုံးကိုတစ်ချိန်တည်းတွင်မမှတ်ထားပါ။
Hash_update သည် ဖတ်သည့်အချက်အလက်များကိုလက်ရှိ hash တွက်ချက်မှုသို့ထည့်သွင်းလိမ့်မည်။
နောက်ဆုံးအနေနဲ့နောက်ဆုံး hash တန်ဖိုးကိုရရန် hash_final ကို ခေါ်ပါ။
စွမ်းဆောင်ရည်ပြ issues နာများ - ကြီးမားသောဖိုင်များအတွက်ဖိုင်များကိုပိတ်ဆို့ခြင်းအစားဖိုင်ပိတ်ပင်တားဆီးမှုကိုဖတ်မည့်အစား,
Hash Algorithm Selection : ကွဲပြားခြားနားသော hash algorithms ( MD5 ကဲ့သို့ MD5, Sha1 Sha256 ) ကွဲပြားခြားနားသော hash တန်ဖိုးများကိုထုတ်လုပ်သည်။ algorithm တစ်ခုကိုရွေးချယ်သည့်အခါ၎င်းသည်အမှန်တကယ်လိုအပ်ချက်များအပေါ် အခြေခံ. ဆုံးဖြတ်နိုင်သည်။ ဥပမာအားဖြင့် MD5 သည် 32 ဇာတ်ကောင် long hash တန်ဖိုးကိုထုတ်ပေးသည် ။