<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,သငျသညျအချို့သောနမူနာကုဒ်သို့မဟုတ်ဖော်ပြချက်ထားနိုင်ပါတယ်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဤဆောင်းပါးသည်အဓိကအားဖြင့်ဆွေးနွေးထားသည် PHP md5 ထုတ်လုပ်သော function ကို 32 နည်းနည်း strings ၏အဓိပ္ပာယ်နှင့်ဖွဲ့စည်းပုံ\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># PHP md5 ထုတ်လုပ်သော function ကို 32 နည်းနည်း string ကိုဘယ်လိုကိုယ်စားပြုသလဲ။?အဓိပ္ပာယ်နှင့်ဖွဲ့စည်းပုံ၏အသေးစိတ်ရှင်းပြချက်</span></span><span>
တည်နေ PHP အလယ်ပိုင်း,`</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` လုပ်ဆောင်ချက်များကိုအချက်အလက်အတွက် hash တန်ဖိုးများကိုထုတ်လုပ်ရန်ကျယ်ပြန့်စွာအသုံးပြုသည်。很多开发者တည်နေ看到 `</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` ပြန်လာသော </span><span><span class="hljs-number">32</span></span><span> ဘယ်အချိန်မှာနည်းနည်း string ကို,အဲဒါကိုကိုယ်စားပြုတာတွေအကြောင်းသိချင်ရင်,၎င်း၏ဖွဲ့စည်းပုံနှင့်အဓိပ္ပာယ်ကဘာလဲ?。ဤဆောင်းပါးသည်ဤပြ problem နာကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်。
</span><span><span class="hljs-comment">## တစ်、MD5 function ခြုံငုံသုံးသပ်ချက်</span></span><span>
MD5(Message Digest Algorithm </span><span><span class="hljs-number">5</span></span><span>)是တစ်种哈希函数,၎င်းသည်သတ်မှတ်ထားသောအရှည်မှထွက်ရှိသည့်အရှည်မှမည်သည့်အရှည်ကိုမဆို input ကိုမြေပုံဆွဲနိုင်သည်,အခုချက်ချင်း </span><span><span class="hljs-number">128</span></span><span> မြင်းဇက်ကြိုး(</span><span><span class="hljs-number">16</span></span><span> ဒရယ်)hash တန်ဖိုး。တည်နေ PHP အလယ်ပိုင်း,`</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` 函数默认返回တစ်个 </span><span><span class="hljs-number">32</span></span><span> မြင်းဇက်ကြိုး的十六进制字符串。
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$hash</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$hash</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း: fc3ff98e8c6a0d3087d515c0473f8677</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
"FC3F98E8C6A0D3087D3087D515C047373F877777" ဒီမှာပြန်လာတဲ့ MD5 ရဲ့ Hexadecimal ကိုယ်စားပြုမှုပါ။
Fixed အရှည် - MD5 ၏ output သည် bits 128 bits 128 bits, i.E. 16 bytes များဖြစ်သည်။ PHP သည် Hexadecimal ကိုယ်စားပြုမှုကိုအသုံးပြုသည်။ Byte တစ်ခုစီသည်အက်ခရာနှစ်လုံးဖြင့်ကိုယ်စားပြုသည်။ ထို့ကြောင့်စာလုံးရေ 32 လုံးဖြင့်အဆုံးသတ်သည်။
Hexadecimal ကိုယ်စားပြုမှု - ဇာတ်ကောင်တစ်ခုစီ၏တန်ဖိုးသည် 0-9 နှင့် af ဖြစ်သည်။ ဥပမာ အား ဖြင့် FC3FF98E တွင် Binary 1111 ကို ကိုယ်စားပြုသည်။ C သည် Binary 1100 ကို ကိုယ်စားပြုသည်။
Uniqueness (သီအိုရီဆိုင်ရာ) - MD5 hash တန်ဖိုးများသည်များသောအားဖြင့်မတူညီသော inputs data များအတွက်ကွဲပြားခြားနားသည်။
MD5 သည်တစ်လမ်းတည်းရှိသော hash function ဖြစ်ပြီးမူရင်းဒေတာများကို Hash တန်ဖိုးကိုတိုက်ရိုက်ပြန်လည်မရရှိနိုင်ပါ ။
MD5 ၏တွက်ချက်မှုလုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
ဒေတာဖြည့်ပါ - မူရင်းစာကို 512-bits များစွာကိုဖြည့်ပြီးအဆုံးမှာမက်ဆေ့ခ်ျအရှည်ကိုဖြည့်ပါ။
Buffer ကိုစတင်ရန် - 42-bit မှတ်ပုံတင်နှင့် 42-bit မှတ်ပုံတင်နှင့်အတူအစပြုပါ။ A, B, C နှင့် D.
block ineration : မက်ဆေ့ခ်ျကို 512-bit လုပ်ကွက်များအဖြစ်ပိုင်းခြားပြီး 244 ခုအနက် 64 ခုအပြီးတွင် block ကိုအသစ်ပြောင်းသည်။
နောက်ဆုံးတွင် Hash : နောက်ဆုံးတွင်မှတ်ပုံတင်ထားသော 4 ခု၏တန်ဖိုးများကို 128-bit hash value သို့ပေါင်းစပ်ပြီး 32-bit hexadecimal-string ထဲသို့ပြောင်းလဲသွားသည်။
လုံခြုံရေးပြ issues နာများကြောင့် MD5 သည်စကားဝှက်သိုလှောင်မှုအတွက်မသင့်တော်သေးသော်လည်း (တိုက်မိခြင်းသို့ရောက်နိုင်သည်) သည်အများအားဖြင့်အသုံးပြုလေ့ရှိသည်။
ဖိုင်ပေါင်းစည်းမှုအတည်ပြုချက်ဖိုင်
ရိုးရှင်းသောဒေတာလက်မှတ်
ထူးခြားသောလက်ခဏာမျိုးဆက် (ဥပမာ URL hash)
ဥပမာ -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.txt"</span></span><span>;
</span><span><span class="hljs-variable">$hash</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"တင်သွင်းခြင်း MD5 အဘိုး: <span class="hljs-subst">$hash</span></span></span><span>";
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
PHP ၏ MD5 () function သည် 32-bit hexadecimal string ကိုပြန်လည်ရရှိပြီး 128-bit binary hash တန်ဖိုးကိုကိုယ်စားပြုသည်။
၎င်းသည်နောက်ကြောင်းပြန်မလှည့်နိုင်သော, ပုံသေအရှည်နှင့်သီအိုရီထူးခြားသည်။
၎င်းကိုဒေတာဖြည့်တင်းခြင်းနှင့်မှတ်ပုံတင်မှတဆင့်ပြည်တွင်း၌တွက်ချက်သည်။
လုံခြုံရေးအကန့်အသတ်ရှိသော်လည်းဖိုင်မှတ်တမ်းများဖော်ထုတ်ခြင်း၏မျိုးဆက်တွင်တန်ဖိုးရှိသည်။
MD5 ၏ဖွဲ့စည်းပုံနှင့်အဓိပ္ပာယ်ကိုနားလည်ခြင်းအားဖြင့် developer များကလုံခြုံရေးလိုအပ်ချက်များနှင့်အတူအခြေအနေများနှင့်အတူ၎င်းကိုအသုံးပြုခြင်းကိုရှောင်ရှားခြင်းဖြင့်ပိုမိုသင့်လျော်စွာသုံးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,可以放တစ်些演示或提示</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nဆောင်းပါးဖတ်ပြီးပြီ,ကေျးဇူးတင်စကား!\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>