PHP တွင်သုံးစွဲသူစကားဝှက်များကိုကိုင်တွယ်သောအခါလုံခြုံရေးသည် Developer များအတွက်အထူးအရေးအကြီးဆုံးပြ issues နာများထဲမှတစ်ခုဖြစ်သည်။ PHP ၏ Password_Hash () function သည် password များကိုသိုလှောင်ရန်အဆင်ပြေလွယ်ကူပြီးလုံခြုံစိတ်ချရသောနည်းလမ်းတစ်ခုဖြစ်သော်လည်းအချို့သောသီးခြားဖြစ်ရပ်များတွင် developer များကအသေးစိတ်ထိန်းချုပ်မှုအတွက် crypt () crypt () ကို ရွေးချယ်ရန်ရွေးချယ်နေဆဲဖြစ်နိုင်သည်။ စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးကိုတိုးတက်စေရန် Cander_bytes () ကို ပေါင်းစပ်ခြင်းဖြင့်ပိုမိုလုံခြုံသောဆားတန်ဖိုးများကိုမည်သို့ထုတ်လုပ်ရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။
ဆားသည်စကားဝှက်မတိုင်မီနှင့်အပြီးထည့်သွင်းထားသည့်ကျပန်းအချက်အလက်များနှင့်အပြီးထည့်သွင်းထားပြီးဆေးကုသမှုတွင်ပါ 0 င်ခြင်း, ဆားတန်ဖိုးသို့မဟုတ်ပုံသေဆားတန်ဖိုးအသုံးပြုခြင်းသည် password ကို သက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများ နှင့် အဘိဓာန်များကို ပိုမိုအားနည်းစေလိမ့်မည်။
Crypt () သည်စကားဝှက်ကိုဆေးထည့်ရန် function တစ်ခုဖြစ်သည်။ MD5 , Sha-256 , Sha-256 ကဲ့သို့သော HOSHING algorithms မျိုးစုံကိုထောက်ပံ့ သည် ။ ၎င်းတို့အနက် Sha-256 နှင့် Sha-512 သည်လက်ရှိတွင်အသင့်အတင့်ဆုံးရွေးချယ်စရာများဖြစ်သည်။
SHA-512 algorithm ကို သုံး. crypt () ဥပမာတစ်ခု
$password = 'examplePassword';
$salt = '$6$rounds=5000$usesomesillystringforsalt$';
$hash = crypt($password, $salt);
ဤနေရာတွင် ဒေါ်လာ 6 ဒေါ်လာ သည် Sha-512 ကို အသုံးပြု. Rounds = 5000 သည် ITERATS 5000 ကိုဆိုလိုသည်။ အောက်ပါ string သည်ဆားတန်ဖိုးဖြစ်သည်။
static strings, mandal_bytes () ကိုအသုံးပြုခြင်းနှင့်နှိုင်းယှဉ်လျှင်လုံခြုံစိတ်ချရသောဆားတန်ဖိုးများတည်ဆောက်ရန်အတွက်အကောင်းဆုံးသောစံပြကျပန်းကျပန်း byte stream ကိုထုတ်လုပ်နိုင်သည်။
စကားဝှက်ကိုလုံလုံခြုံခြုံထားရန် Cryptes () crypt () crypt () crypt () crypt () crypt () ကို မည်သို့ပေါင်းစပ်ရမည်ကိုပြသသည့်ဥပမာပြည့်စုံသောဥပမာတစ်ခုရှိသည်။
function generateSalt($length = 16) {
// သတ်မှတ်ထားသောအရှည်၏ကျပန်း bytes ထုတ်လုပ်ပါ,နှင့်မှကူးပြောင်း Base64,နောက်တဖန်ဖယ်ရှားပါ crypt() ၏ဇာတ်ကောင်
$rawSalt = base64_encode(random_bytes($length));
// ရှင်းလင်းသော '+'、'/' နှင့် '=',fit ရန် crypt() တောင်းဆို
$cleanSalt = str_replace(['+', '/', '='], '', $rawSalt);
return substr($cleanSalt, 0, $length);
}
function hashPassword($password) {
$salt = generateSalt();
$fullSalt = '$6$rounds=10000$' . $salt . '$';
return crypt($password, $fullSalt);
}
function verifyPassword($password, $hash) {
return hash_equals($hash, crypt($password, $hash));
}
$userPassword = 'mySecret123';
$hashed = hashPassword($userPassword);
// ကုန်လေှာင်ရုံ $hashed ဒေတာဘေ့စကိုသွားပါ
// login အတည်ပြုသည့်အခါ
$inputPassword = 'mySecret123';
if (verifyPassword($inputPassword, $hashed)) {
echo 'စကားဝှက်မှန်';
} else {
echo 'စကားဝှက်';
}
ဆားတန်ဖိုးအရှည်ထိန်းချုပ်မှု - Crypt () သည် စာလုံးရေ 16 လုံးနှင့်သာကန့်သတ်ထားသည့်ဆားတန်ဖိုးအရှည်အတွက်လိုအပ်ချက်များရှိပြီးပိုလျှံသောအပိုင်းကိုဖြတ်တောက်လိမ့်မည်။
ဆားငန်တန်ဖိုးများကိုမသုံးပါနှင့် - စကားဝှက် hash ထုတ်ပေးသည့်အခါတိုင်းကျပန်းဆားတန်ဖိုးအသစ်ကိုအသုံးပြုသင့်သည်။
Hash structures ကို ကိုယ်တိုင်မတည်ဆောက်ပါနှင့် ။
အဆင့်မြှင့်တင်မှုဆိုင်ရာအကြံပြုချက်များ - အကယ်. ၎င်းသည်တိကျသောလိုအပ်ချက်မဟုတ်လျှင်၎င်းသည်ဆားတန်ဖိုးများနှင့် algorithm ရွေးချယ်ခြင်းကိုအလိုအလျောက်ကိုင်တွယ်ရန် password_hash () နှင့် password_verify () ကို အသုံးပြုရန်အကြံပြုသည်။
Determertes () နှင့် crypt () () နှင့် crypt () ကိုပေါင်းစပ်ခြင်းဖြင့် developer များသည်စကားဝှက်စာဝှက်ခြင်း၏ link တစ်ခုချင်းစီကိုကိုယ်တိုင်ထိန်းချုပ်နိုင်သည်, လျှို့ဝှက်နံပါတ်သိုလှောင်မှု၏ကျပန်းနှင့်ကြိုတင်ခန့်မှန်းနိုင်မှုကိုတိုးတက်စေနိုင်သည်။ အထူးသဖြင့်မြင့်မားသောလုံခြုံမှုလိုအပ်ချက်များရှိသောစနစ်များတွင်ဤနည်းလမ်းသည်ရိုးရာတည်ငြိမ်သောဆားတန်ဖိုးများထက်ပိုမိုမြင့်မားသောအာမခံချက်ပေးသည်။
လုံခြုံရေးကိုပိုမိုခိုင်မာအောင်လုပ်ရန်လိုအပ်ပါကသို့မဟုတ် ဆိုဒီယမ် ကဲ့သို့သော MORAOBOX, Username စသည်ဖြင့် (ဥပမာ - ခေတ်မီသော encryption library (ဥပမာ, သို့သော်ရဝုဏ်သည်အမြဲတမ်းဖြစ်သည်။ ယုံကြည်စိတ်ချရသောကျပန်းဆားတန်ဖိုးများကိုအသုံးပြုခြင်းသည်စကားဝှက်လုံခြုံရေးအတွက်ပထမဆုံးခြေလှမ်းဖြစ်သည်။
အမှန်တကယ်ဖြန့်ကျက်မှုတွင် HTTPS ကို 0 က်ဘ်ဆိုက်တစ်ခုလုံးတွင်ဖွင့်ထားပြီးစာဝှက်စနစ်များကိုစနစ်တကျအားနည်းသောအချက်များအားနည်းသောအချက်များကိုရှောင်ရှားရန် Database ခွင့်ပြုချက်နှင့် backup လုပ်ထုံးလုပ်နည်းများကိုစနစ်တကျစီမံခန့်ခွဲရန်သေချာစေပါ။