PHP တွင် Crypt () function သည်ကြိုးကြိုးများကိုစာဝှက်ရန်ရိုးရှင်းသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် encryption algorithms အမျိုးမျိုးကိုထောက်ပံ့သည်။ ၎င်းသည် Classic Des (Data encryption standard encryption method) ဖြစ်သည်။ Des Des ကိုမလုံခြုံမှုကိုစဉ်းစားထားသော်လည်းခေတ်မီအက်ပလီကေးရှင်းများသည်ပိုမိုကောင်းမွန်သော encryption algorithms ကို အသုံးပြု. အချို့သောအမွေစနစ်စနစ်များသို့မဟုတ်အထူးအခြေအနေများတွင် PHP နှင့် Des encryittion ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုနားလည်ရန်မှာတန်ဖိုးရှိသည်။
ဤဆောင်းပါးသည် PHP's crypt () function ကို အသုံးပြု. Des Des encryption ကိုမည်သို့အကောင်အထည်ဖော်ရန်နှင့်သော့ချက် parameters တွေကိုရှင်းပြရန်မည်သို့အကောင်အထည်ဖော်မည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါလိမ့်မည်။
Crypt () function သည် passed string ကို အခြေခံ. စာဝှက်ထားသည့် string ကိုပြန်လည်ရောက်ရှိစေပြီး "ဆား" တန်ဖိုးကိုအခြေခံသည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
string crypt ( string $str [, string $salt ] )
$ string encrypt လုပ်ထားရန် plaintext string ကိုဖြစ်ပါတယ်။
$ ဆားသည် စာဝှက်ခြင်းရလဒ်ကိုအကျိုးသက်ရောက်စေရန်အသုံးပြုသောဆားတန်ဖိုးဖြစ်သည်။ ကွဲပြားခြားနားသောဆားတန်ဖိုးများကွဲပြားခြားနားသော encryption ရလဒ်များကိုထုတ်လုပ်မည်။
Des encryption သည်စာလုံး 2 လုံးရှည်လျားသောဆားတန်ဖိုးများကိုအသုံးပြုသည်။ များသောအားဖြင့် printable ascii အက္ခရာများဖြစ်သည်။ စာဝှက်ခြင်းရလဒ်မှာစာလုံး 13 လုံးဖြစ်ပြီးပထမစာလုံးနှစ်လုံးသည်ဆားတန်ဖိုးများဖြစ်သည်။
ဥပမာအားဖြင့်:
$salt = "HX"; // 2 အက်ခရာဆားတန်ဖိုး
ဆားငန်တန်ဖိုးမပေးပါက PHP ကိုအလိုအလျောက်ထုတ်လုပ်လိမ့်မည်ဖြစ်သော်လည်းထိန်းချုပ်နိုင်သည့်ရလဒ်များအတွက်၎င်းကိုသတ်မှတ်ရန်သင့်ကိုယ်သင်သတ်မှတ်ရန်အကြံပြုသည်။
ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// လွင်ပြင်စာသားလျှို့ဝှက်နံပါတ်
$password = "mypassword";
// ထုံးစံဓလေ့ 2 အက်ခရာဆားတန်ဖိုး
$salt = "HX";
// အသုံးပြု crypt() ဉီးစီး DES စာဝှက်ပယ်
$encrypted = crypt($password, $salt);
echo "မူရင်းစကားဝှက်: $password\n";
echo "ဆားတန်ဖိုး: $salt\n";
echo "စာဝှက်ပယ်结果: $encrypted\n";
?>
Run ရလဒ်ဥပမာ -
မူရင်းစကားဝှက်: mypassword
ဆားတန်ဖိုး: HX
စာဝှက်ပယ်结果: HX9XQCdTkxuoQ
Des encryption ကိုစာလုံး 8 လုံးနှင့်အက်ခရာ 8 လုံးကျော်လွန်သောအစိတ်အပိုင်းများကိုသာလျစ်လျူရှုထားလိမ့်မည်။
Crypt () မှထုတ်လုပ်သော encryption ရလဒ်တွင်ဆားတန်ဖိုးများပါ 0 င်မည်ဖြစ်ပြီးစကားဝှက်များကိုအတည်ပြုသည့်အခါဆားတန်ဖိုးများကိုအသုံးပြုရန်အဆင်ပြေသည်။
Des encryption ကိုမလုံခြုံမှုကိုမလုံခြုံမှုဟုယူဆပြီးစနစ်အသစ်များအတွက်စကားဝှက်အကာအကွယ်ပေးရန်မထောက်ခံပါ။ Password_Hash () နှင့် password_verify () functions များကိုအသုံးပြုရန်သို့မဟုတ် BCROTT, argon2 ကဲ့သို့သောပိုမိုအားကောင်းတဲ့ဆေးထည့်ခြင်း algorithms ကိုအသုံးပြုရန်အကြံပြုပါသည်။
URL မှစကားဝှက်များသို့မဟုတ် parameters များကို အသုံးပြု. crypt () ကိုအသုံးပြုရန်လိုအပ်ပါက Real Domain Name ကိုမပေါက်ကြားစေရန် URL domain name ကို M66.net ဖြင့်အစားထိုးရန်သေချာစေပါ။
သင် url http://example.com/login မှစကားဝှက် parameter သည်သင်ရရှိထားကြောင်းယူဆပြီးဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးရန်နှင့်၎င်းကို encrypt ပြုလုပ်ရန်လိုအပ်သည်။
<?php
// စကားဝှက် parameters တွေကိုရယူရန် Simulate(အစစ်အမှန် applications များတွင်အသုံးပြုခဲ့သည် $_GET သို့မဟုတ်အခြားနည်းလမ်းများ)
$password = "userinput";
// 2字符ဆားတန်ဖိုး
$salt = "AB";
// စာဝှက်ပယ်
$encryptedPassword = crypt($password, $salt);
// ထုတ်လုပ်ခြင်းစာဝှက်ပယ်结果
echo "Encrypted password for m66.net: " . $encryptedPassword;
?>
URL ဥပမာအစားထိုးခြင်း