လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဖိုင်ကိုတင်ပြီးနောက် MD5_File () ကို server-side စိစစ်အတည်ပြုရန် MD5_File () ကိုသုံးပါ

ဖိုင်ကိုတင်ပြီးနောက် MD5_File () ကို server-side စိစစ်အတည်ပြုရန် MD5_File () ကိုသုံးပါ

M66 2025-06-01

Web Development တွင်ဖိုင်တင်ခြင်းသည်အလွန်အသုံးများသော်လည်း၎င်းနှင့်အတူဖိုင်သမာဓိနှင့်လုံခြုံရေးကိုအတည်ပြုခြင်း။ တင်ပို့သောဖိုင်ကိုအဂတိလိုက်စားမှုသို့မဟုတ်အကျင့်ပျက်ခြစားမှုများကိုအနှောင့်အယှက်မပေးနိုင်စေရန် PHP သည် MD5_File () function ကိုထောက်ပံ့ပေးနိုင်သည်။

ဤဆောင်းပါးသည် MD5_File () function ကို uploaded ဖိုင်များ၏ဆာဗာဘက်သမာဓိကိုစစ်ဆေးရန်နှင့်အမှန်တကယ် PHP ကုဒ်သင်္ကေတများနှင့်ပေါင်းစပ်ပြီး၎င်း၏ application method ကိုအသေးစိတ်ရှင်းပြရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။


MD5_File () function ကဘာလဲ။

MD5_File () သည် PHP တွင်သတ်မှတ်ထားသောဖိုင်၏ MD5 hash တန်ဖိုးကိုတွက်ချက်သော PHP တွင် built-in function တစ်ခုဖြစ်သည်။ MD5 သည်ကျယ်ပြန့်စွာအသုံးပြုသောဆေးထည့်သော Hashing algorithm ဖြစ်ပြီးအရှည် 32-bit string တစ်ခုထဲသို့မည်သည့်အရှည်ရှိသည့်အချက်အလက်များကိုမြေပုံများပို့ပေးကြောင်းကျယ်ပြန့်စွာအသုံးပြုသောဆေးထည့်သော algorithm ဖြစ်သည်။ တင်ခြင်းမပြုမီနှင့်မစပြီးဖိုင်များ၏ MD5 တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းရှိမရှိနှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်ဖိုင်များပြောင်းလဲခြင်းရှိမရှိဆုံးဖြတ်နိုင်သည်။

function ရှေ့ပြေးပုံစံ:

 string md5_file ( string $filename [, bool $raw_output = false ] )
  • $ filename : MD5 တန်ဖိုးများအတွက်တွက်ချက်ရန်လိုအပ်သည့်ဖိုင်လမ်းကြောင်း။

  • $ RAW_OUTPATE - အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါက MD5 Digest ကိုမူလ binary format ဖြင့်ပြန်ပို့ပါ။ ပုံမှန်အားဖြင့် မှားယွင်းသောအယူမှားသည် 32-bit hexadecimal string ကိုပြန်ပို့သည်။


ဖိုင်တင်ခြင်းနှင့်သမာဓိစစ်ဆေးမှုလုပ်ငန်းစဉ်

  1. အသုံးပြုသူသည်ဖိုင်ကို server သို့ပုံစံဖြင့်တင်သည်။

  2. ဆာဗာသည်တင်ထားသောဖိုင်ကိုခေတ္တသိမ်းဆည်းသည်။

  3. ဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ရန်ဆာဗာသည် MD5_File () ကို ခေါ်ဆိုသည်။

  4. MD5 တန်ဖိုးကို 0 န်ဆောင်မှုခံယူသူသို့မဟုတ်ဒေတာဘေ့စ်တွင်မျှော်မှန်းထားသည့် MD5 တန်ဖိုးနှင့်နှိုင်းယှဉ်ပါ။

  5. ဖိုင်ပြီးပြည့်စုံမှုရှိမရှိဆုံးဖြတ်ပါ။


အမှန်တကယ်နမူနာကုဒ်

ဤတွင်ဖိုင်ပြီးပြည့်စုံသောဖိုင်တင်ခြင်းနှင့်သမာဓိစစ်ဆေးမှုဥပမာဖြစ်သည်။

 <?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_FILES['uploaded_file']) && $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
        // ဖိုင်များကို upload လုပ်ရန်ယာယီလမ်းကြောင်း
        $tmpFilePath = $_FILES['uploaded_file']['tmp_name'];
        
        // ပစ်မှတ်လမ်းကြောင်းကိုကယ်တင်ပါ(လိုအပ်ချက်များအရသိရသည်ပြုပြင်နိုင်ပါသည်)
        $destination = __DIR__ . '/uploads/' . basename($_FILES['uploaded_file']['name']);
        
        // မိုဘိုင်းတင်ခြင်းဖိုင်များကိုပစ်မှတ်လမ်းညွှန်သို့ပို့ပါ
        if (move_uploaded_file($tmpFilePath, $destination)) {
            
            // တင်ထားသောဖိုင်ကိုတွက်ချက်ပါMD5အဘိုး
            $md5Hash = md5_file($destination);
            
            // ရှေ့မျက်နှာပြင်သို့မဟုတ်ဒေတာဘေ့စ်ကိုကြိုတင်သိထားသည်ဟုယူဆသည်MD5အဘိုး(这里举例为固定အဘိုး)
            $expectedMd5 = 'd41d8cd98f00b204e9800998ecf8427e';  // နမူနာMD5
            
            // ဖိုင်သမာဓိကိုစစ်ဆေးပါ
            if ($md5Hash === $expectedMd5) {
                echo "အောင်မြင်စွာဖိုင်တင်ပါ,နှင့်ဖိုင်သမာဓိစစ်ဆေးအတည်ပြုအတည်ပြုသည်!";
            } else {
                echo "အောင်မြင်စွာဖိုင်တင်ပါ,သို့သော်ဖိုင်သည်သမာဓိစစ်ဆေးမှုအတည်ပြုမှုမအောင်မြင်ပါ!";
            }
        } else {
            echo "ဖိုင်ချွေတာမှုမအောင်မြင်ပါ!";
        }
    } else {
        echo "ဖိုင်များကို upload လုပ်ခြင်းသို့မဟုတ်အမှားများကိုတင်ခြင်းမရှိပါ!";
    }
}
?>

HTML Upload ပုံစံဥပမာ

 <form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="file">File Upload ကိုရွေးချယ်ပါ:</label>
    <input type="file" name="uploaded_file" id="file" />
    <button type="submit">တင်ပါ</button>
</form>

မှတ်သားရန်အရာ

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

  • MD5 Collision : MD5 algorithm တွင်တိုက်မှုအန္တရာယ်ရှိသည်။ အကယ်. လုံခြုံရေးလိုအပ်ချက်များသည်အလွန်မြင့်မားပါက SHA256_File () ကဲ့သို့သောပိုမိုလုံခြုံသော hash function ကိုအသုံးပြုရန်စဉ်းစားပါ။

  • File Path Permissions : upload လမ်းညွှန်သည်ခွင့်ပြုချက်ကိုရေးပါ။

  • client md5 တန်ဖိုး - 0 န်ဆောင်မှုခံယူသူသည် MD5 တန်ဖိုးကိုပေးထားပါက,


အကျဉ်းချုပ်

MD5_File () function ကိုအသုံးပြုခြင်းသည်တင်ထားသောဖိုင်များ၏သမာဓိကိုမှန်ကန်စွာစစ်ဆေးရန်အတွက်ဖိုင်သည်ဖိုင်ကိုအလျင်အမြန်သို့မဟုတ်မမှန်မကန်ကိုမမှန်မကန်ခြင်းရှိမရှိကိုလျင်မြန်စွာဆုံးဖြတ်ရန်လွယ်ကူပြီးထိရောက်သောနည်းလမ်းဖြစ်သည်။ upload လုပ်ထုံးလုပ်နည်းတွင်အခြားလုံခြုံရေးအစီအမံများနှင့်ပေါင်းစပ်ပြီး၎င်းသည်ဖိုင်အမျိုးအစား၏ယုံကြည်စိတ်ချရမှုနှင့်လုံခြုံရေးကိုတိုးတက်စေနိုင်သည်။