အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ်များ (CMS) တွင်အသုံးပြုသူအချက်အလက်များ၏လုံခြုံရေးသည်အထူးသဖြင့်စကားဝှက်များသိုလှောင်ခြင်းများဖြစ်သည်။ PHP နှင့်ပါ 0 င်သည့် Crypt () function သည်ဂန္ထဝင်နှင့်လုံခြုံသောစကားဝှက်စာဝှက်စနစ်ဖြစ်သည်။ ၎င်းကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းသည်စနစ်၏လုံခြုံမှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးသည်လျှို့ဝှက်နံပါတ်သိုလှောင်မှုကိုလုံခြုံရေးနှင့်ပြောင်းလွယ်ပြင်လွယ်စေရန် Crypt () function ကို Crypt () function ကို Crypt () function ကိုအတိမ်အနက်ဖြင့်ရှင်းပြပါမည်။
Crypt () သည် PHP တွင် built-in encryption function တစ်ခုဖြစ်ပြီး Encryption algorithms (des, blowfish, sha-256, Sha-512 စသည်ဖြင့်) အကောင်အထည်ဖော်သည်။ စကားဝှက် hash သိုလှောင်မှုအတွက်သင့်တော်သော "ဆားတန်ဖိုး" parameter ဖြင့်ဖြတ်သန်းခြင်းအားဖြင့်နောက်ကြောင်းပြန်မလှည့်နိုင်သောစာဝှက်ထားသော string ကိုထုတ်ပေးသည်။
$hashed_password = crypt($password, $salt);
Salt Value သည်စာဝှက်စနစ်လုံခြုံရေးနှင့်သက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများကိုတားဆီးရန်အတွက်သော့ချက်ဖြစ်သည်။
Crypt () သည် ပုံစံတွင်အောက်ပါအတိုင်းကွဲပြားသော algorithms ကိုထောက်ပံ့သည်။
des (အကြံပြုခြင်းမလိုအပ်ပါ)
Blowish (Modern Password Hashing အတွက်အကြံပြု သည် )
Sha-256 (အမှတ်အသား $ 5 $ )
Sha-512 (အမှတ်အသား $ 6 $ )
ဥပမာအားဖြင့်, blowfish ကိုသုံးပါ။
$salt = '$2y$12$' . substr(bin2hex(random_bytes(16)), 0, 22);
$hash = crypt($password, $salt);
ဤတွင် ဒေါ်လာ 2Y $ 2Y $ 2Y $ 2Y) သည် algorithm ကိုကိုယ်စားပြုသည်။ 12 သည်ကုန်ကျစရိတ် parameter (ITERATS ၏နံပါတ်များသည်အချိန်ကုန်လေလေဖြစ်သည်), 22 လုံးတွင်ဆား 22 လုံးဖြင့်ရောင်းချသည်။
function createPasswordHash($password) {
// ကျပန်းဆားထုတ်လုပ်ပါ,အသုံးပြု Blowfish algorithm
$salt = '$2y$12$' . substr(strtr(base64_encode(random_bytes(16)), '+', '.'), 0, 22);
// hash generate
return crypt($password, $salt);
}
အသုံးပြုသူမှတ်ပုံတင်သည့်အခါရှင်းလင်းသောစာသားလျှို့ဝှက်နံပါတ်ကိုအထက်ပါလုပ်ဆောင်ချက်များမှတစ်ဆင့်ထုတ်လုပ်ပြီးဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသည်။
function verifyPassword($password, $hashedPassword) {
// အသုံးပြု stored hash အဆိုပါ cryptographic အတွက်ဆားနှိုင်းယှဉ်
return crypt($password, $hashedPassword) === $hashedPassword;
}
log in လုပ်သည့်အခါဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသော hash password ကိုယူပါ။ Input password ကိုထပ်မံစာဝှက်ရန်နှင့်နှိုင်းယှဉ်ရန်၎င်း၏ဆားကိုသုံးပါ။
Password Fields သည် String အမျိုးအစားများဖြစ်ရန်အကြံပြုထားပြီးအနည်းဆုံးစာလုံးရေ 60 အရှည်ကို Blowfish မှရရှိသော hash ကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်အကြံပြုသည်။
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE NOT NULL,
password_hash CHAR(60) NOT NULL,
...
);
ဆားကိုစိတ်ကြိုက်မထားပါနှင့် ။ Crypt () မှ ထုတ်လုပ်သောဆားပုံစံကိုသုံးပါသို့မဟုတ်စစ်ဆင်ရေးများကိုရိုးရှင်းစေရန် password_hash (php 5.5+) function ကိုသုံးပါ။
Password Update : စကားဝှက်အဟောင်းများအတွက်အားနည်းသော algorithms ကိုအသုံးပြုသူများကိုစဉ်းစားကြည့်ပါ။
စကားဝှက်အစွမ်း - အားနည်းသောစကားဝှက်များကိုရှောင်ရှားရန်ရှေ့တန်းနှင့်နောက်ကျောအပြင်းအထန်စကားဝှက်ကိုပေါင်းစပ်ခြင်း။
Plaintext သိုလှောင်မှုကိုရှောင်ပါ ။ Plaintext Passwords သို့မဟုတ်ပြောင်းပြန်စာဝှက်ထားသောစကားဝှက်များကိုဘယ်တော့မှမသိမ်းဆည်းပါနှင့်။
PHP 5.5, Password_hash () နှင့် password_verify () မှစတင်. Simpler နှင့် Safer Password Management interfaces များနှင့်စတင်နိုင်ပြီးနောက်ခံအလွှာသည် crypt () အပေါ်အခြေခံသည်။ စီမံကိန်းအသစ်များကိုပထမ ဦး ဆုံးအသုံးပြုရန်အကြံပြုသည်။
$hash = password_hash($password, PASSWORD_BCRYPT);
$isValid = password_verify($password, $hash);
သင်၏ CMS ဗားရှင်းသည်အဟောင်းနှင့်သင် crypt () ကို ကိုယ်တိုင်အသုံးပြုရန်လိုပါကအထက်ပါနည်းလမ်းမှာလုံခြုံစိတ်ချရသောဖြေရှင်းနည်းတစ်ခုဖြစ်သည်။