PHP တွင်, ဖိုင်ချိန်းခြင်းကိုအထူးသဖြင့်ဖိုင်ပေါင်းစည်းမှုကိုအတည်ပြုရန်လိုအပ်သည့်အခါအထူးလိုအပ်ချက်တစ်ခုဖြစ်သည်။ PHP ၏ hash_final function သည် hash တွက်ချက်မှု၏နောက်ဆုံးရလဒ်ရရှိရန်အသုံးပြုသောသော့ချက်ဖြစ်သည်။ ဖိုင်များကိုစာဖတ်ခြင်းလုပ်ငန်းများနှင့်ပေါင်းစပ်ပြီးဖိုင်ကြီးများ၏ hash တန်ဖိုးကိုထိထိရောက်ရောက်တွက်ချက်နိုင်ပြီးဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ခြင်းကိုရှောင်ရှားနိုင်သည်။ ဤဆောင်းပါးသည်ထိရောက်သောဖိုင် Hash တွက်ချက်မှုကိုရရှိရန် Hash_Final function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြပြီး Memory စားသုံးမှုကိုလျှော့ချရန်ဖိုင်ပိတ်ပင်တားဆီးမှုဖြင့်စာဖတ်ခြင်းကိုပေါင်းစပ်ပါလိမ့်မည်။
PHP ၏ hash_final function သည် PHP တွင် built-in hash function များထဲမှတစ်ခုဖြစ်သည် ။ Hash_final သည် နောက်ဆုံး hash တန်ဖိုးကိုပြန်ပို့လိမ့်မည်။ Hash Value ဆိုသည်မှာဖိုင်အမျိုးအစားများကဲ့သို့သောအချက်အလက်များ (ဖိုင်အကြောင်းအရာကဲ့သို့) အချက်အလက်များမှတွက်ချက်ထားသည့်သတ်မှတ်ထားသောအရှည် string တစ်ခုဖြစ်သည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
string hash_final ( resource $context [, int $raw_output = 0 ] )
$ Context သည် hash_init function မှဖန်တီးထားသော hash အခြေအနေဖြစ်သည်။
$ Raw_output သည် optional parameter သည်ဖြစ်သည်။ 1 ကိုသတ်မှတ်တဲ့အခါမူရင်း binary data တွေကိုပြန်ပို့ပေးတယ်,
ကွန်ပျူတာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အထူးသဖြင့်ဖိုင်သည်ကြီးမားသည့်အခါဖိုင်ကိုတွက်ချက်ရန်အတွက်အချက်အလက်များကိုတိုက်ရိုက်ဖွင့်ရန်မလိုအပ်ပါ။ ကျွန်ုပ်တို့သည်မှတ်ဥာဏ်လျှံလျှံလျှံလျှံကိုရှောင်ရှားနိုင်ပြီးဖိုင်များဖတ်ရှုခြင်းဖြင့်ကွန်ပျူတာထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။
တိကျသောနည်းလမ်းမှာ File ကိုဖွင့်ရန် fopen ကို အသုံးပြုရန်ဖြစ်သည်။ ထို့နောက် file contents တွေကိုတစ် ဦး ချင်း စီ အားဖြင့်တစ် ဦး တည်းဖြင့်ဖတ်ပါ ။
အောက်ဖော်ပြပါသည် PHP ၏ hash_final function ကို အသုံးပြု. code splease ကိုထိရောက်သောဖိုင်ပေါင်းတွက်ချက်မှုကိုအကောင်အထည်ဖော်ရန်ဖိုင်ဖတ်ရှုခြင်းနှင့်ပေါင်းစပ်ခြင်း၏စံနမူနာဥပမာတစ်ခုဖြစ်သည်။
<?php
// File Hashing ကိုတွက်ချက်သော function ကိုသတ်မှတ်ပါ
function calculateFileHash($filePath, $algorithm = 'sha256') {
// ဖိုင်ကိုဖွင့်ပါ
$file = fopen($filePath, 'rb');
// ဖိုင်ဖွင့်ရန်ပျက်ကွက်လျှင်,ပြန်လာfalse
if (!$file) {
return false;
}
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init($algorithm);
// ဖတ်ပိတ်ပင်တားဆီးမှုအရွယ်အစားကိုသတ်မှတ်ပါ
$chunkSize = 8192; // 8KB
while (!feof($file)) {
// ဖိုင်၏အစိတ်အပိုင်းတစ်ခုဖတ်ပါ
$data = fread($file, $chunkSize);
// Hash အခြေအနေကို Update လုပ်ပါ
hash_update($context, $data);
}
// ဖိုင်ကိုပိတ်ပါ
fclose($file);
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hashValue = hash_final($context);
return $hashValue;
}
// function ကိုခေါ်ဆိုခြင်းနှင့်ရလဒ်ပုံနှိပ်ပါ
$filePath = 'path/to/your/file.txt'; // ကျေးဇူးပြု. ၎င်းကိုသင်၏ဖိုင်လမ်းကြောင်းဖြင့်အစားထိုးပါ
echo 'File hash: ' . calculateFileHash($filePath);
?>
ဖိုင်များအားလုံးကိုမှန်ကန်စွာဖတ်နိုင်ရန်သေချာစေရန် fopen မှတဆင့် file ကို binary mode တွင်ဖွင့်သည်။
Hash_init သည် hash context ကိုအစပိုင်းတွင် အသုံးပြု. အသုံးပြုသော Hashing algorithm ကိုအသုံးပြုသည် ။
တစ်ချိန်တည်းတွင်ကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်သို့မပို့ဆောင်နိုင်ရန် Flash ဖိုင်များရှိဖိုင်များကိုဖတ်ရှုသည်။
Hash_Update သည် ဒေတာတစ်ခုစီကိုစာဖတ်ခြင်းတစ်ခုချင်းစီကိုဖတ်ရှုပြီးနောက် Hash အခြေအနေကိုအသစ်ပြောင်းသည်။
နောက်ဆုံးတွင် Hash_Final ကို နောက်ဆုံး hash တန်ဖိုးကိုပြန်ပို့ရန်ဟုခေါ်သည်။
Memory Optimization - ဖိုင်များကိုပိတ်ပင်တားဆီးမှုဖြင့်ဖတ်ခြင်းအားဖြင့်မှတ်ဥာဏ်အသုံးပြုမှုသည်ကြီးမားသောဖိုင်များပြုပြင်ရန်အတွက်သင့်လျော်သည်။
ကွန်ပျူတာစွမ်းဆောင်ရည် - ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်အဖြစ်တင်ရန်ကုန်ကျစရိတ်မြင့်မားခြင်းကိုရှောင်ကြဉ်ပါ။
ပြောင်းလွယ်ပြင်လွယ် - မတူကွဲပြားသော hashing algorithms များကို MD5 , Sha1 , Sha256 စသည့်သင်၏လိုအပ်ချက်များကိုရွေးချယ်နိုင်သည်။
Hash_Final function ကို block ဖြင့်ပေါင်းစပ်ပြီးဖိုင်များကိုပိတ်ဆို့ခြင်းဖြင့်ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဖိုင်များ၏ hash တန်ဖိုးကိုမှတ်ဉာဏ်မဖြည့်ဘဲမဖြည့်ဘဲပိုမိုတွက်ချက်နိုင်သည်။ Hash_final သည် PHP hash တွက်ချက်မှု၏အဓိကလုပ်ဆောင်ချက်များအနက်တစ်ခုအနေဖြင့် developer များကဖိုင်များကိုအစာရှောင်တွက်တွက်ခြင်းများကိုအစာရှောင်ခြင်းအားဖြင့်ရှာဖွေတွေ့ရှိရန်ကူညီနိုင်သည်။ ဤနည်းလမ်းကိုအသုံးပြုခြင်းသည်တွက်ချက်မှုများ၏ထိရောက်မှုကိုသေချာစေသည်သာမကကြီးမားသောဖိုင်များကြောင့်ဖြစ်ပေါ်လာသောမှတ်ဥာဏ်ဖိအားကိုလည်းရှောင်ရှားသည်။