PHP တွင် Crypt () function သည်ကြိုးကြိုးများကို encrypt လုပ်ခြင်းအတွက်ဘုံကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်စကားဝှက်များကိုစာဝှက်ရန်သင့်တော်သည်။ ၎င်း၏လုပ်ငန်းမူသည် encryption algorithms နှင့်ဆားတန်ဖိုးများပေါ်တွင်မူတည်သည်။ ဆားတန်ဖိုးသည်စာဝှက်ခြင်းလုပ်ငန်းစဉ်တွင်ကျပန်းတန်ဖိုးတစ်ခုဖြစ်သည်။ စကားဝှက်၏ရှုပ်ထွေးမှုကိုတိုးမြှင့်ပေးရန်အသုံးပြုသည်။
<?php
$password = "mypassword";
$salt = '$6$rounds=5000$m66.net$saltstring$'; // ဖြင့် SHA-512 ဥပမာတစ်ခုအနေဖြင့် algorithm,စိတ်ကြိုက်ဒိုမိန်းအမည်များပါ 0 င်သည် salt
$hash = crypt($password, $salt);
echo $hash;
?>
ဤနေရာတွင်ဆားတန်ဖိုးသည် encryption algorithm (ဥပမာ Sha-512 ကဲ့သို့) ကိုဆုံးဖြတ်ရုံသာမကထုတ်လွှင့်မှုရလဒ်များ၏လုံခြုံရေးကိုလည်းသက်ရောက်စေသည်။
ဒုတိယ parameter သည်မသွားဘဲ crypt () function ကိုခေါ်သည့်အခါ PHP သည်အောက်ပါအပြုအမူကိုကျင့်သုံးလိမ့်မည်။
Performance 1 : စနစ်များနှင့် PHP ဗားရှင်းအများစုတွင် crypt () သည် စနစ်ပုံမှန်သို့မဟုတ်အချည်းနှီးသောဆားကိုအသုံးပြုသည်။ ဤသည် encryption အစွမ်းသတ္တိကိုသိသိသာသာလျှော့ချခြင်းနှင့် output ရလဒ်များသည်အလွန်ဆင်တူသည်။
Performance 2 - PHP သို့မဟုတ် operating system ပတ် 0 န်းကျင်ဆိုင်ရာအဟောင်းများအဟောင်းများတွင်စာဝှက်ခြင်းရလဒ်များသည်ကြိုတင်ခန့်မှန်းရခက်နိုင်ပြီးတစ်ခါတစ်ရံစာဝှက်မထားသည့်မူလကြိုးများကိုပင်ပြန်ပို့နိုင်သည်။
Performance 3 : ခေတ်သစ်စာဝှက်စနစ်ကိုထောက်ပံ့သောပတ်ဝန်းကျင်တွင် 0 န်ကြီးဌာနတွင်ဆားငန်ခြင်းမရှိခြင်းသည်အလွန်အမင်းအန္တရာယ်ရှိသည့်အားနည်းသော des des algorithm သို့ပြန်ရောက်စေနိုင်သည်။
ကျပန်းမရှိခြင်း
ဆား၏အဓိကအခန်းကဏ် is သည်ကျပန်းမိတ်ဆက်ပေးရန်မှာစာဝှက်ထားသည့်အခါတိုင်းတူညီသောစကားဝှက်သည်ကွဲပြားခြားနားသောရလဒ်များရှိလိမ့်မည်။ ဆားမရှိရင်တိုက်ခိုက်သူသည် pre-calaluated သက်တံဇယားကို သုံး. စကားဝှက်ကိုလျင်မြန်စွာကွဲစေနိုင်သည်။
ရက်စက်စွာဆက်ဆံ <br> <br> ဆားမရှိလျှင်တူညီသောစကားဝှက်များအားလုံးကိုစာဝှက်ခြင်းရလဒ်များသည်အတူတူပင်ဖြစ်သည်။
အားနည်းချက် encryption algorithm သို့အဆင့်လျှော့ချ အကယ်. ဆားငန်တန်ဖိုးမရှိသေးပါက Crypt () သည် မလုံခြုံသော des algorithm ကို အသုံးပြု. စာဝှက်ရန်စကားဝှက်၏ပထမစာလုံး 8 လုံးကိုသာ 0 င်ရောက်နိုင်သည်။
ခေတ်သစ် algorithm အင်္ဂါရပ်များကိုအသုံးမပြုပါ ဥပမာအားဖြင့် Sha-256 နှင့် Sha-512 Support ဆားတွင်ပါ 0 င်သောဤအဆင့်မြင့်အင်္ဂါရပ်များကိုဆားမပါဘဲ 0 င်ခွင့်မရနိုင်ပါ။
အပြည့်အစုံနှင့်အသေးစိတ်အချက်အလက်များလိုက်နာသောဆားတန်ဖိုးများကိုအမြဲတမ်းသတ်မှတ်ထားပါ ။
ရိုးရှင်းသောသို့မဟုတ်ပုံသေဆားတန်ဖိုးများကိုအသုံးပြုခြင်းကိုရှောင်ပါ ။ Base64_encode () ကို ထုတ်လုပ်ရန်အတွက်ကျပန်းထုတ်လုပ်ထားသောဆားတန်ဖိုးများကိုကျပန်းထုတ်လုပ်ပြီးဆားတန်ဖိုးများကိုအသုံးပြုရန်အကြံပြုသည်။
PHP ၏ password_hash () ကဲ့သို့သော အထူးစကားဝှက် hash function ကိုအသုံးပြုခြင်းသည်ဆားမျိုးဆက်များနှင့် algorithm selection ကိုပိုမိုလုံခြုံအောင်ပြုလုပ်ရန်ပိုမိုအဆင်ပြေစေသည့် PHP ၏ password algorithm () ကို အသုံးပြု. အသုံးပြုရန်စဉ်းစားပါ ။
<?php
$password = "mypassword";
// အသုံးပြု SHA-512,ကြားဖြတ်အရေအတွက် 5000,Salt Value တွင်စိတ်ကြိုက်ဒိုမိန်းအမည်ပါ 0 င်သည် m66.net
$salt = '$6$rounds=5000$m66.net$' . substr(bin2hex(random_bytes(8)), 0, 16);
$hash = crypt($password, $salt);
echo $hash;
?>
၎င်းသည်ဆားတန်ဖိုး၏ကျပန်းကိုသေချာစေရုံသာမကစာဝှက်ဖြင့် algorithm နှင့်ကြားသိရှိသည့်နံပါတ်များကိုရှင်းလင်းရုံသာမကလုံခြုံရေးကိုလည်းတိုးတက်စေသည်။
PHP တွင် Crypt () function သည်ဆားတန်ဖိုးမပေးပါက၎င်းသည်စာဝှက်ခြင်းရလဒ်၏လုံခြုံရေးကိုသိသိသာသာလျှော့ချပေးပြီးတိုက်ခိုက်သူများကအလွယ်တကူအမြတ်ထုတ်နိုင်သည်။ Salt တန်ဖိုးများသည်တူညီသောစကားဝှက်ကိုအတူတူပင် hash ကိုထုတ်လုပ်ခြင်းမှကာကွယ်ရန်သော့ချက်မဟုတ်ဘဲ encryption algorithm နှင့်၎င်း၏စွမ်းအားကိုလည်းဖော်ပြရန်သော့ချက်ဖြစ်သည်။ ထို့ကြောင့် မည်သည့်ကိစ္စတွင်မဆို Crypt () သည် လုံခြုံစိတ်ချရသောအန္တရာယ်များကိုရှောင်ရှားရန်သင့်လျော်သောဆားတန်ဖိုးများကိုသင့်လျော်သောဆားတန်ဖိုးများဖြင့်ထောက်ပံ့ပေးသင့်သည် ။