ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းဖိုင်အကြောင်းအရာကိုပုံတူပွားခြင်းရှိမရှိဆုံးဖြတ်ရန်ဘုံလိုအပ်ချက်ဖြစ်သည်။ ဥပမာအားဖြင့်ဖိုင်တင်ခြင်းနှင့်စာချုပ်များကိုကိုင်တွယ်ခြင်း, ဖိုင်သိုလှောင်မှုသို့မဟုတ်ထပ်တူအကြောင်းအရာများကိုကာကွယ်ခြင်းသည်ဖိုင်အမျိုးအစားသည်အတူတူပင်ရှိ, မရှိကိုထိရောက်စွာဆုံးဖြတ်ရန်လိုအပ်သည်။ PHP သည်ဤရည်မှန်းချက်အောင်မြင်ရန်ကိရိယာများကိုထောက်ပံ့ပေးသည်။ Hash_update_Stream function သည်အလွန်လက်တွေ့ကျသောနည်းလမ်းဖြစ်သည်။
Hash_Update_stream သည် PHP တွင်တည်ဆောက်ထားသော Hash function ဖြစ်သည်။ ၎င်းသည် PHP တွင်တပ်ဆင်ထားသည်။ ဖိုင်တစ်ခုလုံး၏ hash ကိုတိုက်ရိုက်တွက်ချက်ခြင်းရိုးရာနည်းလမ်းနှင့်မတူဘဲ Hash_update_stream သည်တဖြည်းဖြည်းဖတ်နိုင်ပြီးကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်သို့မပို့နိုင်သည့် Hash တန်ဖိုးကိုမွမ်းမံနိုင်သည်။
hash_update_stream function ကိုအသုံးပြုရန်ဖိုင်ကိုပုံတူပွားခြင်းရှိမရှိကိုဆုံးဖြတ်ရန် (ဥပမာ MD5 သို့မဟုတ် Sha256 စသည့်) ဖိုင်တစ်ခုစီအတွက် hash တန်ဖိုးကိုတွက်ချက်ရန်နှင့်တွက်ချက်ထားသည့် Hash တန်ဖိုးကိုသိုလှောင်ထားသည့် hash တန်ဖိုးကိုနှိုင်းယှဉ်နိုင်သည်။ အကယ်. hash တန်ဖိုးမှာအတူတူပါပဲဆိုလျှင်ဖိုင်အကြောင်းအရာကိုပုံတူပွားရန်စဉ်းစားသည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဖိုင်ကိုဖွင့ ်. ၎င်း၏အကြောင်းအရာကိုတစ်ဆင့်ချင်းဖတ်ရန်လိုအပ်ပြီးဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_update_stream ကို အသုံးပြုပါ။
<?php
// ဖိုင်လမ်းကြောင်း
$filePath = 'path/to/your/file.txt';
// Hashing algorithm ကိုရွေးချယ်ပါ
$hashAlgo = 'sha256'; // သင်ရွေးချယ်နိုင်သည် md5、sha1 အခြား algorithms
// ဖိုင်ကိုဖွင့်ပါ
$file = fopen($filePath, 'rb');
// Hash အရင်းအမြစ်များကိုစတင်ပါ
$hashContext = hash_init($hashAlgo);
// ဖိုင်အဆင့်ကိုအဆင့်ဆင့်ဖြင့်ဖတ်ပြီး Hash Value ကို update လုပ်ပါ
while (!feof($file)) {
$chunk = fread($file, 1024); // ဖိုင်လုပ်ကွက်များကိုဖတ်ပါ,ကြီးမားသောဖိုင်များကိုတစ်ပြိုင်နက်တည်းတင်ခြင်းကိုရှောင်ပါ
hash_update_stream($hashContext, $chunk); // Hash တန်ဖိုးကို Update လုပ်ပါ
}
// နောက်ဆုံး hash တန်ဖိုးကိုတွက်ချက်
$hashValue = hash_final($hashContext);
// ဖိုင်ကိုပိတ်ပါ
fclose($file);
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: $hashValue";
?>
ဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ပြီးနောက်ဖိုင်ကိုပုံတူပွားခြင်းရှိမရှိဆုံးဖြတ်ရန်ဒေတာဘေ့စ်သို့မဟုတ်သိုလှောင်မှုစနစ်ရှိဖိုင် hash တန်ဖိုးကိုဖိုင်တွဲဖြင့်နှိုင်းယှဉ်နိုင်သည်။
<?php
// ငါတို့မှာသိုလှောင်ထားတဲ့ hash စာရင်းရှိတယ်ဆိုပါစို့
$storedHashes = [
'd2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2', // သိုလှောင်ထားသည့်ဖိုင် hash တန်ဖိုး
'a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3'
];
// သိုလှောင်ထားသော hash value တွင်တွက်ချက်ထားသည့် hash တန်ဖိုးရှိရှိမရှိစစ်ဆေးပါ
if (in_array($hashValue, $storedHashes)) {
echo "ဖိုင်အကြောင်းအရာကိုပုံတူပွား!";
} else {
echo "ဖိုင်အကြောင်းအရာများကိုထပ်ခါတလဲလဲမပေးပါ,တင်ရန်သို့မဟုတ်သိုလှောင်ရန်အဆင်သင့်!