In PHP, when we need to get the MD5 value of a file, the two commonly used functions are md5_file() and hash_file('md5') . ဤရွေ့ကားလုပ်ဆောင်ချက်နှစ်ခုသည်အလွန်ဆင်တူသည်။ နှစ် ဦး စလုံးသည်သတ်မှတ်ထားသောဖိုင်၏ MD5 hash တန်ဖိုးကိုပြန်ပို့သည်။ သို့သော်စွမ်းဆောင်ရည်အရသူတို့ကတသမတ်တည်းတသမတ်တည်းရှိပါသလား။ File Deeduplations of File Deeduplations, file deptions scressification နှင့် controls ဖြန့်ဖြူးရေးကွန်ယက် (CDN) ၏ cache ကိုစစ်ဆေးခြင်းကဲ့သို့သောဖိုင် hash တွက်ချက်မှုများစွာနှင့်ပတ်သက်သောစနစ်တစ်ခုကိုသင်တီထွင်နေပါကဤပြ issue နာသည်အထူးအရေးကြီးသည်။
၎င်းသည် PHP တွင်ဖိုင်တစ်ခု၏ MD5 တန်ဖိုးကိုတိုက်ရိုက်တွက်ချက်ရန် PHP တွင် built-in shortcut function တစ်ခုဖြစ်သည်။
$md5 = md5_file('/var/www/m66.net/uploads/sample.jpg');
၎င်းသည် PHP ၏ built-in MD5 အကောင်အထည်ဖော်မှုကိုအသုံးပြုသည်။
၎င်းသည် PHP ၏ hash extension မှပေးသောလုပ်ဆောင်ချက်များအနက်မှတစ်ခုဖြစ်သည်။ 'MD5' ကို parameter တစ်ခုအနေဖြင့်အသုံးပြုသောအခါ၎င်းသည် MD5_File () နှင့်အတူတူပင်ဖြစ်သည်။
$md5 = hash_file('md5', '/var/www/m66.net/uploads/sample.jpg');
MD5_File () , Hash_File () နှင့်နှိုင်းယှဉ်ပါက Sha1 Sha256 စသည့် algorithms များကိုပိုမိုထောက်ပံ့သည်။
လုပ်ဆောင်ချက်နှစ်ခုအကြားစွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုတိကျစွာအကဲဖြတ်ရန်အတွက်အောက်ပါစစ်ဆေးရေးကျမ်းကိုကျွန်ုပ်တို့တည်ဆောက်ခဲ့သည်။
$filepath = '/var/www/m66.net/uploads/bigfile.zip';
$start = microtime(true);
for ($i = 0; $i < 100; $i++) {
md5_file($filepath);
}
$end = microtime(true);
echo "md5_file(): " . ($end - $start) . " seconds\n";
$start = microtime(true);
for ($i = 0; $i < 100; $i++) {
hash_file('md5', $filepath);
}
$end = microtime(true);
echo "hash_file('md5'): " . ($end - $start) . " seconds\n";
အထက်ဖော်ပြပါကုဒ်ကို 100MB ၏ဖိုင်တွဲတစ်ခုတွင် 100MB ၏ဖိုင်တွင် 4 င်းတို့တွင် 4 င်းတို့၏ဖိုင်ကိုကွပ်မျက်ခံရပြီးရလဒ်မှာအောက်ပါအတိုင်းဖြစ်သည် -
md5_file(): 4.32 seconds
hash_file('md5'): 4.38 seconds
စမ်းသပ်မှုရလဒ်များအရဆုံးဖြတ်ခြင်း, နှစ်ခုအကြားစွမ်းဆောင်ရည်ကွာခြားချက်သည်အလွန်သေးငယ်သည်။ MD5_File () သည်အနည်းငယ်ပိုမိုမြန်ဆန်သည်, သို့သော်ခြားနားချက်သည် 2% အောက်သာရှိသည်။ Network နှင့် Disk Cache ကဲ့သို့သောအချက်များအရအတက်အကျများကိုစဉ်းစားခြင်း, ဤခြားနားချက်ကိုအသုံးချပရိုဂရမ်များတွင်လျစ်လျူရှုနိုင်သည်။
သို့သော် Hash_File () သည် algorithm ရွေးချယ်ခြင်းတွင်ပြောင်းလွယ်ပြင်လွယ်ရှိသည်။ အကယ်. သင်သည် Hash Algorithms ကိုအနာဂတ်တွင်ပြောင်းလဲနိုင်သည်ဆိုလျှင် (ဥပမာအားဖြင့် Sha-256 ကိုသုံးပါ) ကို အသုံးပြု. Hash_File () ကို အသုံးပြု. ပိုမိုအရွယ်အစားနိုင်သည်။
MD5_File () ကိုပိုနှစ်သက်သည် - MD5 ကိုသာလိုအပ်ပါကအဆုံးစွန်သောကုဒ်ရိုးရှင်းစွာလိုက်စားလျှင်။
Hash_File () ကို ဦး စားပေး) သင်၏စီမံကိန်းသည် hash algorithms မျိုးစုံကိုထောက်ပံ့ရန်သို့မဟုတ်အနာဂတ်တိုးချဲ့ရန်စီစဉ်ထားပါက။
အချို့သောအစွန်းရောက်သောပတ်ဝန်းကျင်တွင် PHP ဗားရှင်းသို့မဟုတ်စနစ်စုစည်းခြင်း parametersation များသည်လုပ်ဆောင်ချက်နှစ်ခုစလုံး၏ကွပ်မျက်မှုအပေါ်သက်ရောက်မှုရှိနိုင်သည်။ သင်၏လျှောက်လွှာဇာတ်လမ်းသည်စွမ်းဆောင်ရည်ကိုအလွန်အမင်းအထိခိုက်မခံပါကသင့်ကိုယ်သင်ပစ်မှတ်ထားသောပတ် 0 န်းကျင်တွင်အခြေခံကိုအခြေခံသည်။
MD5_File () နှင့် hash_file ('MD5') သည် များသောအားဖြင့်အလွန်နီးကပ်စွာလုပ်ဆောင်သည်။ မည်သည့်ရွေးချယ်မှုတစ်ခုသည် Code Readability, အနာဂတ်အဆင့်အတန်းနှင့်ရှေ့နောက်ညီညွတ်မှုအတွက်အဓိကအားဖြင့်အဓိကမူတည်သည်။ နှစ် ဦး စလုံးသည်အလွန်ယုံကြည်စိတ်ချရပြီးဖိုင်လက်ဗွေများကိုထုတ်လုပ်ခြင်း, ဖိုင်များကိုထုတ်လုပ်ခြင်း, ဖိုင်စောင့်ကြည့်ခြင်းစသည်တို့ကိုလုံခြုံစွာအသုံးပြုနိုင်သည်။ MD5_File () သည် MD5_File () သည်အမြန်ဆုံးရွေးချယ်မှုဖြစ်သည်။ အကယ်. ၎င်းတို့သည်တစ်ကမ္ဘာလုံးအတိုင်းအတာကိုလိုက်စားလျှင် Hash_File () သည် စည်းလုံးညီညွတ်သောဝင်ပေါက်တစ်ခုအနေဖြင့်ပိုမိုသင့်တော်သည်။