<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာများနှင့်လုံးဝမသက်ဆိုင်ပါ,သာဥပမာ display ကိုသာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># ဘယ်လိုသုံးရမလဲ md5_file function ကိုဖြစ်ပါတယ် PHP ဖိုင်တင်ခြင်း၏တရားဝင်မှုကိုစစ်ဆေးပါ?</span></span><span>
0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်,File Upload function သည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်。မည်မှျပင်,ဘေးကင်းလုံခြုံမှုကိုသေချာစေရန်,developer သည် upload လုပ်ထားသောဖိုင်များကိုစစ်ဆေးရန်လိုအပ်သည်,အန္တရာယ်ရှိတဲ့ဖိုင်တင်ခြင်းအန္တရာယ်များကိုတားဆီးပါ。PHP ဖိုင်အမျိုးအစားအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်,တွင် `md5_file` လုပ်ဆောင်ချက်များကိုရိုးရှင်းပြီးထိရောက်သောဖြစ်ကြသည်,အများအားဖြင့်ဖိုင်သမာဓိနှင့်တရား 0 င်မှုကိုအတည်ပြုရန်အသုံးပြုသည်。
</span><span><span class="hljs-comment">## ဘာလဲ md5_file လုပ်ဆောင်ချက်?</span></span><span>
`md5_file` ဟုတ်ကဲ့ PHP 内置的လုပ်ဆောင်ချက်,သတ်မှတ်ထားသောဖိုင်တွက်ချက်ရန်အသုံးပြုခဲ့သည် MD5 hash တန်ဖိုး。MD5 ဟုတ်ကဲ့一种广泛使用的哈希算法,မည်သည့်အရှည်ကိုမဆိုသတ်မှတ်ထားသောအရှည် string ကိုသင်မြေပုံဆွဲနိုင်သည်(</span><span><span class="hljs-number">32</span></span><span>hexadecimals ဇာတ်ကောင်),အများအားဖြင့်ဖိုင်သမာဓိကိုအတည်ပြုရန်အသုံးပြုသည်。
လုပ်ဆောင်ချက်原型如下:
```php
</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>)
</span></span>
$ filename : တွက်ချက်ရန်လိုအပ်သည့်ဖိုင်လမ်းကြောင်း
$ binary (optional): ရလဒ်ကို binary form ကိုပြန်ပို့ဖို့လား, ပုံမှန် hexadecimal-string ကိုပြန်ပို့ပါ
ဖိုင်တစ်ခုတင်လိုက်သောအခါတိုက်ခိုက်သူသည်မကောင်းသောကုဒ်သို့မဟုတ်ဖိုင်ကိုဖိုင်ကိုတင်နိုင်သည်။ တင်ပို့သောဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ခြင်းအားဖြင့်ကျွန်ုပ်တို့လုပ်နိုင်သည် -
ဖိုင်ကိုဂီယာစဉ်အတွင်းသို့မဟုတ်ပျက်စီးသွားကြောင်းစစ်ဆေးပါ
ဖိုင်သည်တရားဝင်ဖြစ်သည်ကိုဆုံးဖြတ်ရန်လူသိများသောဖိုင်၏ MD5 ကို MD5 တန်ဖိုးကို MD5 တန်ဖိုးကိုနှိုင်းယှဉ်ထားသည်
တူညီသောဖိုင်၏ထပ်ခါတလဲလဲတင်ခြင်းကိုတားဆီးပါ (cache သို့မဟုတ် deploplication အတွက်အသုံးပြုနိုင်သည်)
အသုံးပြုသူသည်ဖိုင်ကို upload လုပ်ပြီးနောက် PHP သည်ဖိုင်ကိုယာယီလမ်းညွှန်တွင်သိုလှောင်ထားသည်။
ဤယာယီဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ရန် MD5_File ကို သုံးပါ။
တွက်ချက်ထားသော MD5 ကိုတရားဝင်ဖိုင် Hash တန်ဖိုးများနှင့်နှိုင်းယှဉ်ပါ။
အကယ်. ၎င်းနှင့်ကိုက်ညီပါကဖိုင်သည်တရားဝင်ဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင် uploading ကိုငြင်းဆန်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ကြိုတင်သတ်မှတ်ထားသောတရားဝင်ဖိုင်ကိုယူဆပါMD5တန်ဖိုးရှိ array</span></span><span>
</span><span><span class="hljs-variable">$allowed_md5_list</span></span><span> = [
</span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>, </span><span><span class="hljs-comment">// ဗလာဖိုင်၏ဥပမာ</span></span><span>
</span><span><span class="hljs-string">'5d41402abc4b2a76b9719d911017c592'</span></span><span>, </span><span><span class="hljs-comment">// နမူနာMD5</span></span><span>
];
</span><span><span class="hljs-comment">// 检查文件ဟုတ်ကဲ့否上传成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>]) && </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>][</span><span><span class="hljs-string">'error'</span></span><span>] === UPLOAD_ERR_OK) {
</span><span><span class="hljs-variable">$tmp_file</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>];
</span><span><span class="hljs-comment">// တင်ထားသောဖိုင်ကိုတွက်ချက်ပါMD5အဘိုး</span></span><span>
</span><span><span class="hljs-variable">$file_md5</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-variable">$tmp_file</span></span><span>);
</span><span><span class="hljs-comment">// တရားစီရင်ချက်MD5ဟုတ်ကဲ့否在合法列表中</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">in_array</span></span><span>(</span><span><span class="hljs-variable">$file_md5</span></span><span>, </span><span><span class="hljs-variable">$allowed_md5_list</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ပါ,MD5အတည်ပြုအတည်ပြု。"</span></span><span>;
</span><span><span class="hljs-comment">// ဤတွင်သင်သည်ထိုကဲ့သို့သောသိမ်းဆည်းထားသောဖိုင်များကဲ့သို့သောနောက်ဆက်တွဲစစ်ဆင်ရေးများပြုလုပ်နိုင်သည်</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ခြင်းသည်တရားမ 0 င်ပါ,MD5အတည်ပြုပျက်ကွက်。"</span></span><span>;
</span><span><span class="hljs-comment">// ဤနေရာတွင်သင်သည်ဖိုင်ကိုဖျက်ပစ်နိုင်သည်သို့မဟုတ်အမှားတစ်ခုပြန်ပို့နိုင်သည်</span></span><span>
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အဘယ်သူမျှမ upload ဖိုင်သို့မဟုတ် upload အမှားရှာဖွေတွေ့ရှိခြင်းမရှိပါ。"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
MD5 သည်တိုက်မှုအန္တရာယ်များကိုသက်သေပြခဲ့ပြီးစကားဝှက်များကဲ့သို့သောလုံခြုံရေးလိုအပ်ချက်များကိုမြင့်မားသောလုံခြုံရေးလိုအပ်ချက်များနှင့်မသင့်တော်ပါ။ သို့သော်၎င်းသည်အထူးသဖြင့်လူသိများသောဖိုင်များကိုနှိုင်းယှဉ်သောအခါဖိုင်သမာဓိစစ်ဆေးမှုများအတွက်တရားဝင်ဖြစ်သည်။
လုံခြုံရေးတိုးတက်စေရန်အတွက်ဖိုင်အမျိုးအစားရှာဖွေတွေ့ရှိမှု (MIE အမျိုးအစား), ဖိုင်တိုးချဲ့ခြင်း, ဖိုင်အရွယ်အစားအကန့်အသတ်များစသည်တို့ကဲ့သို့သောစိစစ်ရေးအမျိုးအစားကိုရှာဖွေခြင်းကဲ့သို့သောစိစစ်ရေးဆိုင်ရာအစီအမံများကိုပေါင်းစပ်ရန်အကြံပြုသည်။
လုံခြုံရေးလိုအပ်ချက်များသည်ပိုမိုမြင့်မားပါက SHA-256 ( HASH_FILE ('Sha256', $ filename) ကဲ့သို့သောလုံခြုံစိတ်ချရသောဆေးထည့်ခြင်း algorithm ကိုအသုံးပြုရန်စဉ်းစားပါ))
MD5_File function သည် PHP ဖိုင်တင်ခြင်းကိုလုံခြုံစိတ်ချရသောစိစစ်အတည်ပြုရန်ရိုးရှင်းသောနှင့်ထိရောက်သောနည်းလမ်းများပေးသည်။ တင်ထားသောဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ခြင်းဖြင့်တရား 0 င်ဖိုင် hash တန်ဖိုးကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်တရားမ 0 င်ဖိုင်များနှင့်အတူတရားမ 0 င်ဖိုင်များအားထိရောက်စွာကာကွယ်နိုင်ပြီးဝက်ဘ်ဆိုက်လုံခြုံရေးကိုသေချာစွာကာကွယ်နိုင်သည်။ ကျိုးကြောင်းဆီလျော်စွာအခြားလုံခြုံရေးအစီအမံများကိုပေါင်းစပ်ခြင်းက File Upload Module ၏လုံခြုံရေးကိုအလွန်တိုးတက်စေလိမ့်မည်။
<hr> <? PHP // ဆောင်းပါးပြီးဆုံးသည်, မသက်ဆိုင်သော PHP Code ဥပမာ ECHO "စာဖတ်ခြင်းအတွက်ကျေးဇူးတင်ပါသည်"; > <span></span>