PHP တွင် hash_update_stream () function သည် function အတွက် data stream ၏ hash တန်ဖိုးကိုတွက်ချက်ရန်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့်ဖိုင်တစ်ခု၏သမာဓိကိုစစ်ဆေးရန်နှင့်ဖိုင်ကိုဂီယာသို့မဟုတ်သိုလှောင်မှုအတွင်းနှင့်အတူဖိုင်ကိုအနှောင့်အယှက်မပေးရန်အသုံးပြုသည်။ ဖိုင်တစ်ခု၏သမာဓိကိုစစ်ဆေးရန် hash_update_stream () function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။
Hash_update_stream () သည် Hash အခြေအနေ၏တန်ဖိုးကိုအဆင့်မြှင့်တင်ရန် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ ၎င်း၏ရည်ရွယ်ချက်မှာ data data stream (များသောအားဖြင့်ဖိုင်တစ်ခု) ကိုပြုပြင်ခြင်းဖြင့်ဖိုင်၏ hash တန်ဖိုးကိုတဖြည်းဖြည်းတွက်ချက်ရန်ဖြစ်သည်။
Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool hash_update_stream ( resource $context , resource $file_handle [, int $length = 8192 ] )
$ Context : များသောအားဖြင့် hash_init () function ဖြင့်ဖန်တီးလေ့ရှိသည်။
$ file_handle - ဖွင့်ထားသောဖိုင်လက်ကိုင် (ဥပမာ, fopen ( ) မှတဆင့်ဖွင့်ထားသောဖိုင်ကိုဖွင့်ထားသောဖိုင်ကိုဖွင့်ထားသည်။
$ အရှည် - Stream ကိုဖတ်နေသည့်အခါတစ်ကြိမ်စီတိုင်းဖတ်သည့်အခါတိုင်းပုံမှန်အားဖြင့် 8192 bytes ဖြစ်သည်။
ဖိုင်ပေါင်းစည်းမှုစစ်ဆေးခြင်းသည်သိမ်းဆည်းခြင်းသို့မဟုတ်လွှဲပြောင်းခြင်းအတွင်းဖိုင်များကိုပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်အကျင့်ပျက်ခြစားမှုများကိုသေချာစေရန်သေချာစေရန်အဓိကနည်းလမ်းဖြစ်သည်။ application တစ်ခုတွင်ဖိုင်များသည်လုံခြုံရေးနှင့်ဒေတာရှေ့နောက်ညီညွတ်မှုအတွက်သေချာစေရန်သေချာသည့် file contracity ်ဌာန်းချက်ကိုသေချာစေရန်သေချာသည်။
ဥပမာအားဖြင့်ဆာဗာမှကူးယူထားသောဖိုင်များကိုလွှဲပြောင်းစဉ်အတွင်းဖိုင်များကိုအနှောင့်အယှက်ဖြစ်စေကြောင်းအတည်ပြုလိုပေမည်။ ဤအချက်မှာဖိုင်၏ hash တန်ဖိုးကိုနှိုင်းယှဉ်ခြင်းဖြင့်ဖိုင်သည်အတူတူပင်ရှိနေခြင်းရှိမရှိကိုသင်အတည်ပြုနိုင်သည်။
ဖိုင်အဆင့်ဆင့်ကိုဖတ်ပြီး 4 င်း၏ hash value ကိုတွက်ချက်ရန် hash_update_stream () ကို သုံးနိုင်သည်။ ဤချဉ်းကပ်နည်းဖြင့်ဖိုင်အမျိုးအစားများအားလုံးကိုအကောင်အထည်ဖော်ရန်နှင့်နောက်ဆုံးတွင်ဖိုင်၏အပြည့်အ 0 ရရှိစေရန်သေချာသည်။ လွှဲပြောင်းခြင်းသို့မဟုတ်သိုလှောင်မှုကာလအတွင်းဖိုင်ပြောင်းလဲခြင်းသည်အချိန်မရွေးဆိုလျှင်၎င်းသည်ဖိုင်၏သမာဓိကိုရှာဖွေရန်အသုံးပြုနိုင်သည်။
ဖိုင်သမာဓိကိုအတည်ပြုရန် Hash_update_stream () function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// တစ် ဦး hash အခြေအနေဖန်တီးပါ
$context = hash_init('sha256');
// ဖိုင်ကိုဖွင့်ပါ
$file_path = 'path/to/your/file.txt';
$file = fopen($file_path, 'rb');
if (!$file) {
die('无法ဖိုင်ကိုဖွင့်ပါ');
}
// အသုံးပြု hash_update_stream() တဖြည်းဖြည်းဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်
while (!feof($file)) {
// တစ်ခုချင်းစီကိုဖတ်ပါ 8192 bytes နှင့် hash တန်ဖိုးကို update
hash_update_stream($context, $file, 8192);
}
// ဖိုင်၏နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hash = hash_final($context);
// output ဖိုင်၏ hash တန်ဖိုး
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $hash . "\n";
// ဖိုင်ကိုပိတ်ပါ
fclose($file);
// သငျသညျယခင်ကဖိုင်၏မှန်ကန်သော hash သိုလှောင်ထားပြီဆိုပါစို့
$correct_hash = 'Pre- သိုလှောင်ထားသောမှန်ကန်သော hash တန်ဖိုး';
// ဖိုင်သမာဓိကိုစစ်ဆေးပါ
if ($hash === $correct_hash) {
echo "ဖိုင်သမာဓိအတည်ပြုစိစစ်အတည်ပြု!\n";
} else {
echo "ဖိုင်သမာဓိစစ်ဆေးမှုအတည်ပြုချက်မအောင်မြင်ပါ!\n";
}
?>
ဤဥပမာတွင် hash_init () function ကို အသုံးပြု. hash အခြေအနေကို ဦး စွာဖန်တီးသည်။ ထို့နောက်ဖိုင်ကိုဖွင့ ်. hash_update_stram () function ကို အသုံးပြု. ဖိုင်၏ hash တန်ဖိုးကိုတဖြည်းဖြည်းတွက်ချက်သည်။ ဖိုင်ကိုဖတ်ပြီးနောက်ဖိုင်၏နောက်ဆုံး hash တန်ဖိုးကိုရယူရန်နှင့်ဖိုင်၏သမာဓိကိုစစ်ဆေးရန်ယခင်သိုလှောင်ထားသည့်မှန်ကန်သော hash တန်ဖိုးနှင့်နှိုင်းယှဉ်ပါက hash_final () ကို အသုံးပြုသည်။
hash_update_stream () function သည်ဖိုင်တစ်ခုလုံးကိုတစ်ပြိုင်နက်တည်းဖွင့်ရန်အလွန်အသုံးဝင်သောကြောင့် Hash တွက်ချက်မှုများအတွက်ဖိုင်များကိုအဆင့်ဆင့်ဖတ်ရန်ဖြစ်သည်။
စာဖတ်စဉ်ဖိုင်သည်မှန်ကန်သော 0 င်ခွင့်အခွင့်အရေးများရှိကြောင်းသေချာပါစေ။
Hash_update_stream () သည် file streams များ, data streams နှင့်အခြား streams အမျိုးအစားများအတွက်သင့်တော်သည်။
Hash_init () - hash context ကိုအစပြုခြင်းနှင့် hash algorithm ကိုသတ်မှတ်သည် (ဥပမာ Sha256 ) ကိုသတ်မှတ်သည်။
hash_update () : hash အခြေအနေကို update လုပ်ဖို့အသုံးပြုတဲ့တန်ဖိုး။
Hash_final () : နောက်ဆုံး hash တန်ဖိုးကိုရရှိသည်။
File contrunity ကိုအတည်ပြုရန် hash_update_stram () function ကိုအသုံးပြုခြင်းသည်အလွန်ထိရောက်သောနည်းစနစ်ဖြစ်သည်။ ဖိုင်ကိုတဖြည်းဖြည်းဖတ်ခြင်းနှင့် hash တန်ဖိုးကိုတွက်ချက်ခြင်းအားဖြင့်ဖိုင်ကို transmission နှင့် storage စဉ်အတွင်းအကျင့်ပျက်ခြစားမှုကိုအနှောင့်အယှက်မဖြစ်စေနိုင်ကြောင်းသေချာပါသည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများ၌ဤနည်းလမ်းကိုဖိုင်ကူးယူခြင်း,