လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> file signature စိစစ်အတည်ပြုအကောင်အထည်ဖော်ရန် hash_update_stream () ကိုသုံးပါ

file signature စိစစ်အတည်ပြုအကောင်အထည်ဖော်ရန် hash_update_stream () ကိုသုံးပါ

M66 2025-05-27

ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဖိုင်လွှဲပြောင်းခြင်းနှင့်သိုလှောင်ခြင်း၏လုံခြုံရေးသည်အမြဲလျစ်လျူရှုမရနိုင်သောပြ issue နာတစ်ခုဖြစ်ခဲ့သည်။ ဖိုင်၏သမာဓိကိုသေချာစေရန်နှင့်လွှဲပြောင်းနေစဉ်အတွင်းဖိုင်ကိုအနှောင့်အယှက်ဖြစ်စေခြင်းမှကာကွယ်ရန် File Signature စိစစ်အတည်ပြုခြင်းသည်ဘုံနှင့်ထိရောက်သောအလေ့အကျင့်တစ်ခုဖြစ်သည်။ Hash_update_stream () function သည် File Signature စိစစ်အတည်ပြုအတွက် PHP တွင်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် hash_update_stream () function ကိုမည်သို့အသုံးပြုရမည်။

ဖိုင်လက်မှတ်အတည်ပြုခြင်းဆိုသည်မှာအဘယ်နည်း။

File Signature အတည်ပြုခြင်းဆိုသည်မှာဖိုင်တစ်ခု၏အကြောင်းအရာနှင့်ပတ်သက်သောဒစ်ဂျစ်တယ်လက်မှတ်ကိုထုတ်ဖော်ပြောဆိုရန် Hash Algorithm ကိုအသုံးပြုသောနည်းလမ်းဖြစ်သည်။ MD5, Sha-1, Sha-256 စသည်တို့ပါဝင်သည်။

ဖိုင်များကိုကွန်ယက်တွင်ပြောင်းရွှေ့သောအခါဖိုင်များအနေဖြင့်ဖိုင်များအနေဖြင့်ခြိမ်းခြောက်မှုအမျိုးမျိုး, ဒေတာဆုံးရှုံးမှုစသဖြင့်သင်ကြုံတွေ့ရနိုင်သည်။

hash_update_stream () function ကို မိတ်ဆက်

PHP မှ hash_update_stream () function သည် hash values ​​များကို update လုပ်ရန်အသုံးပြုသည်။ ၎င်းသည်ကြီးမားသောဖိုင်များကိုတစ်ပြိုင်နက်တည်းဖွင့်ရန်မလိုဘဲ Hash တန်ဖိုးကိုတစ်ပြိုင်နက်တည်းဖြည့်ရန်ခွင့်ပြုသည့်အတွက်အလွန်ထိရောက်သောကြောင့်အလွန်ထိရောက်သောကြောင့်ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်ပုံမှန်အားဖြင့် hash_init () နှင့် hash_final () file signature မျိုးဆက်များနှင့်အတည်ပြုခြင်းလုပ်ငန်းစဉ်ကိုအပြီးသတ်လုပ်ဆောင်ခြင်းဖြင့်အသုံးပြုသည်။

Hash_update_stream () function ကို၏အခြေခံအသုံးပြုမှု

Hash_update_stream () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool hash_update_stream ( resource $context , resource $handle [, int $length = 1024 ] )
  • $ Context : ဤသည် hash_init () function ကိုဖန်တီးသော hash အခြေအနေတွင်ရှိသည်။

  • $ လက်ကိုင် - fopen () function မှတဆင့်ရရှိနိုင်သည့်ဖိုင်၏ဖိုင်လက်ကိုင်။

  • $ အရှည် - hash ကို updated တိုင်းကို bytes အရေအတွက်ကိုဖတ်တိုင်း 1024 bytes မှပုံမှန်ဖတ်ပါ။

အဆင့် 1: hash အခြေအနေကိုအစပြုပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် hash algorithm ကိုရွေးချယ်ရန်နှင့် hash အခြေအနေကိုစတင်ရန်လိုအပ်သည်။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည် Sha-256 algorithm ကိုသုံးပါမည်။

 $algorithm = 'sha256';
$context = hash_init($algorithm);

အဆင့် 2 - ဖိုင်ကိုဖွင့ ်. Hash Value ကိုတဖြည်းဖြည်းချင်းဖြည့်ဆည်းပါ

ထို့နောက်ဖိုင်ကို fopen () function မှတဆင့်ဖိုင်ကိုဖွင့်ပြီးဖိုင်အကြောင်းအရာကိုတဖြည်းဖြည်းဖတ်ရန်နှင့် Hash တန်ဖိုးကိုမွမ်းမံရန် hash_update_stream () function ကိုသုံးသည်။ ဤဖြစ်စဉ်သည်ကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်သိပ်မများဘဲကိုင်တွယ်နိုင်သည်။

 $file = fopen('file.txt', 'rb');
if ($file === false) {
    die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}

while (!feof($file)) {
    hash_update_stream($context, $file);
}

fclose($file);

အဆင့် 3: ဖိုင်၏ hash တန်ဖိုးကိုရယူပါ

ဖိုင်အကြောင်းအရာများအားလုံးသည် hash အခြေအနေကိုဖတ်ရန်နှင့် update လုပ်ပြီးသည်နှင့် Hash_final () function မှတဆင့်နောက်ဆုံး hash တန်ဖိုးကိုရနိုင်သည်။

 $fileHash = hash_final($context);
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $fileHash;

အဆင့် 4 - ဖိုင်၏သမာဓိကိုစစ်ဆေးပါ

ဖိုင်၏သမာဓိကိုစစ်ဆေးရန်ဖိုင်၏ hash တန်ဖိုးကိုယခင်သိုလှောင်ထားသောမှန်ကန်သော hash တန်ဖိုးကိုနှိုင်းယှဉ်ရန်လိုအပ်သည်။ နှစ်ခုပွဲစဉ်လျှင်ဖိုင်ကိုအနှောင့်အယှက်မပေးထားပါ။

 $expectedHash = 'Pre- သိုလှောင်ထားသော hash တန်ဖိုး';

if ($fileHash === $expectedHash) {
    echo "ဖိုင်ပြည့်စုံ,နှင့်အတူအနှောင့်အယှက်မ";
} else {
    echo "ဖိုင်ကိုအနှောင့်အယှက်ပေးထားပါတယ်";
}

ဥပမာ - File Signature Verification Code ကိုပြည့်စုံစွာဖြည့်စွက်ပါ

 <?php
// Hashing algorithm ကိုရွေးချယ်ပါ
$algorithm = 'sha256';

// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init($algorithm);

// ဖိုင်ကိုဖွင့်ပါ
$file = fopen('file.txt', 'rb');
if ($file === false) {
    die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}

// တဖြည်းဖြည်း hash တန်ဖိုးကို update
while (!feof($file)) {
    hash_update_stream($context, $file);
}
fclose($file);

// ဖိုင်၏ hash တန်ဖိုးကိုရယူပါ
$fileHash = hash_final($context);
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $fileHash . "\n";

// 验证ဖိုင်ပြည့်စုံ性
$expectedHash = 'Pre- သိုလှောင်ထားသော hash တန်ဖိုး';

if ($fileHash === $expectedHash) {
    echo "ဖိုင်ပြည့်စုံ,နှင့်အတူအနှောင့်အယှက်မ";
} else {
    echo "ဖိုင်ကိုအနှောင့်အယှက်ပေးထားပါတယ်";
}
?>

hash_update_stream ကိုအသုံးပြုခြင်း၏ကောင်းကျိုးများ ()

  1. Memory Memory ထိရောက်မှု - hash_update_stream () function သည်ဖိုင်များကိုပြုပြင်ရန်နှင့်ဖိုင်တစ်ခုလုံးကို 0 င်ရန်သင့်တော်သော hash တန်ဖိုးများကိုတွက်ချက်ရန်နှင့် hash တန်ဖိုးများကိုတွက်ချက်ရန်ခွင့်ပြုသည်။

  2. Multiping algorithms မျိုးစုံ - PHP သည် hashing algorithms (Sha-256, Sha-512 စသဖြင့်) MPP Multiping algorithms (Sha-256, Sha-512 စသည်တို့) ကိုထောက်ပံ့သည်။ သင်၏လိုအပ်ချက်များအရသင့်လျော်သော algorithm ကိုရွေးချယ်နိုင်သည်။

  3. အသုံးပြုရန်လွယ်ကူသည် - File Signature စိစစ်အတည်ပြုအတွက် hash_update_stream () ကို အသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပြီးပြည့်စုံမှုစစ်ဆေးခြင်းကိုခြေလှမ်းအနည်းငယ်သာလိုအပ်သည်။

URL လုံခြုံရေး

အမှန်တကယ် application များအရ File Signature စိစစ်အတည်ပြုခြင်းကို File download နှင့် upload လုပ်ခြင်းလုပ်ငန်းများနှင့်ပေါင်းစပ်လေ့ရှိသည်။ File Transfer အတွက် M66.net ကဲ့သို့သောဝက်ဘ်ဆိုက်တစ်ခုကိုသင်အသုံးပြုနေပါက download လုပ်ထားသောဖိုင်တစ်ခုစီကိုလက်မှတ်ရေးထိုးပြီးအတည်ပြုရန်အရေးကြီးသောလုံခြုံရေးအစီအမံဖြစ်သည်။ ဥပမာအားဖြင့်, M66.NET မှကူးယူထားသောဖိုင်ကိုသင်အတည်ပြုခြင်းရှိမရှိကိုစစ်ဆေးနိုင်သည်။