လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဖိုင်အကြောင်းအရာကိုပုံတူရှိမရှိဆုံးဖြတ်ရန် Hash ကိုအသုံးပြုပါ

ဖိုင်အကြောင်းအရာကိုပုံတူရှိမရှိဆုံးဖြတ်ရန် Hash ကိုအသုံးပြုပါ

M66 2025-05-27

ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းဖိုင်အကြောင်းအရာကိုပုံတူပွားခြင်းရှိမရှိဆုံးဖြတ်ရန်ဘုံလိုအပ်ချက်ဖြစ်သည်။ ဥပမာအားဖြင့်ဖိုင်တင်ခြင်းနှင့်စာချုပ်များကိုကိုင်တွယ်ခြင်း, ဖိုင်သိုလှောင်မှုသို့မဟုတ်ထပ်တူအကြောင်းအရာများကိုကာကွယ်ခြင်းသည်ဖိုင်အမျိုးအစားသည်အတူတူပင်ရှိ, မရှိကိုထိရောက်စွာဆုံးဖြတ်ရန်လိုအပ်သည်။ PHP သည်ဤရည်မှန်းချက်အောင်မြင်ရန်ကိရိယာများကိုထောက်ပံ့ပေးသည်။ Hash_update_Stream function သည်အလွန်လက်တွေ့ကျသောနည်းလမ်းဖြစ်သည်။

hash_update_stream function ကဘာလဲ?

Hash_Update_stream သည် PHP တွင်တည်ဆောက်ထားသော Hash function ဖြစ်သည်။ ၎င်းသည် PHP တွင်တပ်ဆင်ထားသည်။ ဖိုင်တစ်ခုလုံး၏ hash ကိုတိုက်ရိုက်တွက်ချက်ခြင်းရိုးရာနည်းလမ်းနှင့်မတူဘဲ Hash_update_stream သည်တဖြည်းဖြည်းဖတ်နိုင်ပြီးကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်သို့မပို့နိုင်သည့် Hash တန်ဖိုးကိုမွမ်းမံနိုင်သည်။

ဖိုင်ကိုပုံတူပွားခြင်းရှိမရှိဆုံးဖြတ်ရန် Hash_update_stream ကို အသုံးပြုနည်း?

hash_update_stream function ကိုအသုံးပြုရန်ဖိုင်ကိုပုံတူပွားခြင်းရှိမရှိကိုဆုံးဖြတ်ရန် (ဥပမာ MD5 သို့မဟုတ် Sha256 စသည့်) ဖိုင်တစ်ခုစီအတွက် hash တန်ဖိုးကိုတွက်ချက်ရန်နှင့်တွက်ချက်ထားသည့် Hash တန်ဖိုးကိုသိုလှောင်ထားသည့် hash တန်ဖိုးကိုနှိုင်းယှဉ်နိုင်သည်။ အကယ်. hash တန်ဖိုးမှာအတူတူပါပဲဆိုလျှင်ဖိုင်အကြောင်းအရာကိုပုံတူပွားရန်စဉ်းစားသည်။

အဆင့် 1: ဖိုင်ကိုဖွင့်ပြီး hash value ကိုတွက်ချက်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဖိုင်ကိုဖွင့ ်. ၎င်း၏အကြောင်းအရာကိုတစ်ဆင့်ချင်းဖတ်ရန်လိုအပ်ပြီးဖိုင်၏ 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";
?>

အဆင့် 2 - Hash Value ကိုရှိပြီးသားဖိုင် hash တန်ဖိုးနှင့်နှိုင်းယှဉ်ခြင်း

ဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ပြီးနောက်ဖိုင်ကိုပုံတူပွားခြင်းရှိမရှိဆုံးဖြတ်ရန်ဒေတာဘေ့စ်သို့မဟုတ်သိုလှောင်မှုစနစ်ရှိဖိုင် hash တန်ဖိုးကိုဖိုင်တွဲဖြင့်နှိုင်းယှဉ်နိုင်သည်။

 <?php
// ငါတို့မှာသိုလှောင်ထားတဲ့ hash စာရင်းရှိတယ်ဆိုပါစို့
$storedHashes = [
    'd2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2', // သိုလှောင်ထားသည့်ဖိုင် hash တန်ဖိုး
    'a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3'
];

// သိုလှောင်ထားသော hash value တွင်တွက်ချက်ထားသည့် hash တန်ဖိုးရှိရှိမရှိစစ်ဆေးပါ
if (in_array($hashValue, $storedHashes)) {
    echo "ဖိုင်အကြောင်းအရာကိုပုံတူပွား!";
} else {
    echo "ဖိုင်အကြောင်းအရာများကိုထပ်ခါတလဲလဲမပေးပါ,တင်ရန်သို့မဟုတ်သိုလှောင်ရန်အဆင်သင့်!