PHP ရှိ crypt function ကိုကြိုးများကိုစာဝှက်ရန်အသုံးပြုသည်။ ၎င်းသည်စာဝှက်စနစ်များ (ဥပမာ des, blowfish, md5 စသည်ဖြင့်) ကွဲပြားခြားနားသော encryption algorithms အပေါ် အခြေခံ. စာဝှက်ခြင်းရလဒ်များကိုထုတ်ပေးသည်။ Crypt function ကို password data ကို password data ကို password data ကို password factory ကိုဆားတန်ဖိုးဖြင့် 0 င်ရောက်ခြင်းကိုတိုးမြှင့်ပေးနိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">crypt</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$salt</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>$ str သည်သင်စာဝှက်လိုသည့် plaintext string ကိုဆိုလိုသည် (အသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်) ။
$ ဆား သည်စကားဝှက်ကိုလုံခြုံရေးတိုးမြှင့်ရေးအတွက်အသုံးပြုသောကျပန်း string တစ်ခုဖြစ်ပါတယ်။ ကွဲပြားခြားနားသော encryption algorithms ကွဲပြားခြားနားသောဆားပုံစံများလိုအပ်သည်။
Return Value သည်စာဝှက်ထားသော string တစ်ခုဖြစ်သည်။
ပထမ ဦး စွာ Crypt Function ကို အသုံးပြု. အသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်ကိုစာဝှက်ရန်ပုံကိုသရုပ်ပြရန်ရိုးရှင်းသောဥပမာကိုကြည့်ကြပါစို့။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// အသုံးပြုသူအားဖြင့်ထည့်သွင်းထားသောစကားဝှက်</span></span><span>
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">"userpassword"</span></span><span>;
</span><span><span class="hljs-comment">// အသုံးပြု DES encryption algorithm,နှင့်ဆားတန်ဖိုးကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$salt</span></span><span> = </span><span><span class="hljs-string">"<span class="hljs-subst">$1</span></span></span><span>$".</span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>(</span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>()), </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>); </span><span><span class="hljs-comment">// အသုံးပြု MD5 ကျပန်းဆားတန်ဖိုးများကိုထုတ်လုပ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$encrypted_password</span></span><span> = </span><span><span class="hljs-title function_ invoke__">crypt</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$salt</span></span><span>);
</span><span><span class="hljs-comment">// output encryption ရလဒ်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Encrypted Password: "</span></span><span> . </span><span><span class="hljs-variable">$encrypted_password</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် MD5 encryption algorithm ကိုကိုယ်စားပြုရန် $ 1 $ 1 ဒေါ်လာကို အသုံးပြုသည် (ဤသည် crypt အတွက်စံပုံစံ) ဆားတန်ဖိုးကိုစကားဝှက်သို့ထည့်သွင်းခြင်းဖြင့် encryption ၏ရှုပ်ထွေးမှုကိုထည့်သွင်းထားသည်။
ဆားတန်ဖိုးသည်စာဝှက်ခြင်းလုပ်ငန်းစဉ်၏အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ ၎င်းသည်တူညီသော password ကိုနှစ်ကြိမ်ထပ်တူစာဝှက်ခြင်းရလဒ်ကိုထုတ်လုပ်ခြင်းမှထိရောက်စွာတားဆီးနိုင်သည်။ အသုံးပြုသူများနှစ် ဦး ၏စကားဝှက်များသည်အတူတူပင်လျှင်ပင်လျှင်ကွဲပြားခြားနားသောဆားတန်ဖိုးများကို အသုံးပြု. ၎င်းတို့၏ encryption ရလဒ်များသည်ကွဲပြားခြားနားသော,
Crypt လုပ်ဆောင်ချက်များတွင်ဆားတန်ဖိုးကိုသေချာစွာကျပန်းရရှိစေရန်သေချာစွာဒီဇိုင်းပြုလုပ်ထားရမည်။ ဆားတန်ဖိုးသည်မလွယ်ကူပါ,
PHP Crypt Function သည် encryption algorithms အမျိုးမျိုးကိုထောက်ပံ့သည်။
des ( $ 1 $ 1 သည် MD5 encryption ကိုဆိုလိုသည်)
Blowish ( $ 2A $ သည် blowfish encryption ကိုဆိုလိုသည်)
Sha-256 ( $ 5 $ ay-eni-256 encryption)
Sha-512 ( $ 6 $ oney Sha-512 encryption)
၎င်းတို့အနက် Sha-256 နှင့် Sha-512 သည်စကားဝှက်များမြင့်မားသောစကားဝှက်များကိုအားဖြည့်ပေးရန်သင့်တော်သော encryption spactom ကိုပေးသည်။ encryption ၏လုံခြုံရေးကိုသေချာစေရန်ဤ algorithms နှစ်ခုကိုတတ်နိုင်သမျှရွေးချယ်ရန်အကြံပြုသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">"userpassword"</span></span><span>;
</span><span><span class="hljs-variable">$salt</span></span><span> = </span><span><span class="hljs-string">"<span class="hljs-subst">$2y</span></span></span><span><span class="hljs-subst">$10</span></span><span>$".</span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>(</span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>()), </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">22</span></span><span>); </span><span><span class="hljs-comment">// ဖြစ်ပါှးစေ Blowfish ဆားတန်ဖိုး</span></span><span>
</span><span><span class="hljs-variable">$encrypted_password</span></span><span> = </span><span><span class="hljs-title function_ invoke__">crypt</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$salt</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Encrypted Password (Blowfish): "</span></span><span> . </span><span><span class="hljs-variable">$encrypted_password</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>စကားဝှက်ကိုစာဝှက်ပြီးတဲ့နောက်အသုံးပြုသူရဲ့မှတ်တမ်းတွေကစကားဝှက်ကိုဘယ်လိုအတည်ပြုရမလဲ။ စာဝှက်ထားတဲ့လျှို့ဝှက်နံပါတ်ကိုဒေတာဘေ့စ်ထဲမှာသိမ်းထားလို့ရပါတယ်။ အသုံးပြုသူသည် 0 င်ရောက်သည့်အခါအသုံးပြုသူမှမှတ်တမ်းတင်ထားသောစကားဝှက်ကို crypt function မှတဆင့် encrypt လုပ်ပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ်မှစာဝှက်ထားသောစကားဝှက်ကိုယူဆပါ</span></span><span>
</span><span><span class="hljs-variable">$stored_encrypted_password</span></span><span> = </span><span><span class="hljs-string">"<span class="hljs-subst">$2y</span></span></span><span><span class="hljs-subst">$10</span></span><span><span class="hljs-subst">$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></span><span>"; </span><span><span class="hljs-comment">// Pre-Save encryption password ကို</span></span><span>
</span><span><span class="hljs-comment">// အသုံးပြုသူမှထည့်သွင်းထားသောလွင်ပြင်စာသားလျှို့ဝှက်နံပါတ်</span></span><span>
</span><span><span class="hljs-variable">$user_input_password</span></span><span> = </span><span><span class="hljs-string">"userpassword"</span></span><span>;
</span><span><span class="hljs-comment">// အသုံးပြု相同的ဆားတန်ဖိုး对အသုံးပြုသူအားဖြင့်ထည့်သွင်းထားသောစကားဝှက်进行加密</span></span><span>
</span><span><span class="hljs-variable">$encrypted_input_password</span></span><span> = </span><span><span class="hljs-title function_ invoke__">crypt</span></span><span>(</span><span><span class="hljs-variable">$user_input_password</span></span><span>, </span><span><span class="hljs-variable">$stored_encrypted_password</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-variable">$encrypted_input_password</span></span><span> === </span><span><span class="hljs-variable">$stored_encrypted_password</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Password is correct!"</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">"Password is incorrect!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>စာဝှက်ခြင်းလုပ်ငန်းစဉ်၏လုံခြုံရေးကိုသေချာစေရန် Crypt လုပ်ဆောင်ချက်များကိုဆင်ခြင်တုံတရားအသုံးပြုမှုအပြင်အောက်ပါအကောင်းဆုံးအလေ့အကျင့်များကိုလိုက်နာရမည်။
အားကောင်းသောဆားတန်ဖိုးကိုသုံးပါ ။ Username သို့မဟုတ်အီးမေးလ်လိပ်စာစသည့်ရိုးရှင်းသောကြိုးများကိုအသုံးပြုခြင်းကိုရှောင်ပါ။
သင့်လျော်သောစာဝှက်စနစ် algorithms ကိုသုံးပါ ။ အားနည်းနေတဲ့ des စာဝှက်စနစ်ကိုရှောင်ကြဉ်ပါ။
ဆားတန်ဖိုးများကိုပြန်လည်မစားပါနှင့် - စကားဝှက်တစ်ခုစီသည်သက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများကိုရှောင်ရှားနိုင်သည့်ထူးခြားသောဆားတန်ဖိုးကိုသုံးသင့်သည်။
Store စာဝှက်ထားသောစကားဝှက် - စာသား password များကိုဒေတာဘေ့စ်တွင်မသိမ်းဆည်းပါနှင့်။ စာဝှက်ထားတဲ့စကားဝှက်ကိုသိမ်းဆည်းထားသင့်ပြီးထည့်သွင်းထားတဲ့စကားဝှက်ကိုအတည်ပြုစဉ်စာဝှက်ထားတဲ့ encrypt လုပ်ထားတဲ့ဆားတန်ဖိုးကိုနှိုင်းယှဉ်သင့်ပါတယ်။
စာဝှက်ခြင်းနည်းလမ်းများပုံမှန်အဆင့်မြှင့်တင်ခြင်း - ကွန်ပျူတာစွမ်းအင်တိုးလာသည်နှင့်အမျှ encryption algorithms အချို့သည်အားနည်းချက်ရှိနိုင်သည်။