Password processing processing processing processing logic ၏လုံခြုံရေးသည်အထူးသဖြင့်စနစ်များကိုထိန်းသိမ်းရန်နှင့်အဆင့်မြှင့်တင်ခြင်းအတွက်အထူးအရေးကြီးသည်။ များစွာသောစနစ်များအသုံးပြုသောစကားဝှက်စာဝှက်ခြင်းနည်းလမ်းများသည်လုံခြုံမှုမရှိတော့ပါ။ အလွယ်တကူအက်ကွဲသွားသည်။ PHP သည် crypt () function ကိုကွဲပြားခြားနားသော encryption algorithms ကိုပေါင်းစပ်နိုင်သည့် crypt () function ကိုထောက်ပံ့ပေးနိုင်သည်။
ဤဆောင်းပါးသည် PHP ၏ Crypt () function ကိုမည်သို့အသုံးပြုရမည်, လုံခြုံသောဆားနှင့် algorithms ကိုပေါင်းစပ်ပြီးလုံခြုံစိတ်ချရသောဆားနှင့် algorithms များကိုပေါင်းစပ်ပြီးမလုံခြုံသောစကားဝှက်စာဝှက်ခြင်းနည်းလမ်းများကိုစနစ်တကျအစားထိုးပါ။
Crypt () သည် PHP တွင် built-in password hash function တစ်ခုဖြစ်ပြီး encryption algorithms အမျိုးမျိုးကိုထောက်ပံ့သည်။
သံ
MD5
လေ
Sha-256
Sha-512
၎င်းသည်အဝင်ဆားပေါ်တွင်အဝင်ဆားပေါ်တွင် အခြေခံ. 0 င်ရောက်လာသည့်ဆားပေါ်တွင် အခြေခံ. သက်ဆိုင်သော algorithm ကိုအလိုအလျောက်ရွေးချယ်နိုင်သည်။ MD5 နှင့် Sha1, crypt () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုတိုက်ရိုက်အသုံးပြုခြင်းနှင့်နှိုင်းယှဉ်လျှင်စကားဝှက်စာဝှက်ခြင်းအတွက်ပိုမိုသင့်တော်သည်။
များစွာသောစနစ်များသည်ရိုးရှင်းသောစကားဝှက်စာဝှက်စနစ်များရှိပြီးအောက်ပါချို့ယွင်းချက်များရှိနိုင်သည်။
တစ်ခုတည်းသော hash ကိုဆားမပါဘဲ (ထိုကဲ့သို့သော MD5 သို့မဟုတ် sha1 ကဲ့သို့) ကိုသက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများကအလွယ်တကူအက်ကွဲနိုင်သည်။
ဆားသည်ပုံသေသို့မဟုတ်ရိုးရှင်းပါသည်,
Plaintext သို့မဟုတ်ရိုးရှင်းသောစာဝှက်စနစ်ကိုတိုက်ရိုက်သိုလှောင်ခြင်း, ယိုစိမ့်မှုအန္တရာယ်ရှိနိုင်သည်။
ဤအရာအားလုံးသည်စနစ်၏လုံခြုံရေးကိုများစွာလျှော့ချပေးခဲ့ကြသည်။
အောက်ပါဥပမာသည် crypt () ကို blowfish algorithm နှင့်ပေါင်းစပ်အသုံးပြုသောစကားဝှက်များအတွက် hash ကိုမည်သို့ထုတ်လုပ်ရမည်ကိုပြသသည်။
<?php
// အသုံးပြုသူလက်အောက်ခံ Plaintext စကားဝှက်
$password = 'user_password';
// ကျပန်းဆားထုတ်လုပ်ပါ,Blowfishalgorithm သည်ဆားပုံစံလိုအပ်သည်:$2y$ + costတေးရေး + 22ဆားဆား
$cost = 12; // ကုန်ကျစရိတ်တွက်ချက်,အရေအတွက်ပိုကြီးတဲ့, ပိုလုံခြုံတာကပိုလုံခြုံပေမယ့်အရင်းအမြစ်စားသုံးလေလေ။
$salt = sprintf('$2y$%02d$%s', $cost, substr(strtr(base64_encode(random_bytes(16)), '+', '.'), 0, 22));
// အသုံးပြု crypt() စကားဝှက် hash ထုတ်လုပ်ပါ
$hash = crypt($password, $salt);
echo "စကားဝှက် hash: " . $hash;
?>
ဒီ hash string ကိုဒေတာဗေ့စ်တွင်သိမ်းဆည်းထားနိုင်ပါတယ်။ စကားဝှက်ကိုအတည်ပြုသည့်အခါတူညီသော crypt () function ကိုသုံးပါ။ မှန်ကန်သောဆားနှင့် algorithm ကိုအလိုအလျောက်အသုံးပြုနိုင်ရန်အတွက်ဆား parameter အဖြစ် datab ကို database တွင် pass ကိုဖြတ်သန်းပါ။
စကားဝှက်ကိုအတည်ပြုရန်သင်သည် crypt () ကို တစ်ကြိမ်နှိုင်းယှဉ်ရန်သာလိုအပ်သည်။
<?php
$input_password = 'user_password'; // အသုံးပြုသူထည့်သွင်းမှုကို
$stored_hash = '$2y$12$wW5O3K7uGp1oKpJ.HUJZEuWQNUkXpzB1I7N1h7qMm6E82JZXNpM4a'; // Hash ကိုဒေတာဘေ့စ်တွင်သိမ်းထားသည်
if (crypt($input_password, $stored_hash) === $stored_hash) {
echo "စကားဝှက်စစ်ဆေးမှုအတည်ပြု";
} else {
echo "စကားဝှက်";
}
?>
၎င်းသည်စကားဝှက်မှာအတူတူပင်ဖြစ်ပါကတောင်မှကွဲပြားခြားနားသောဆားများဖြင့်ထုတ်လုပ်လိုက်သော hash သည်ကွဲပြားခြားနားသောကြောင့်လုံခြုံရေးကိုတိုးတက်အောင်ပြုလုပ်လိမ့်မည်။
ရှင်းလင်းသောစာသားသို့မဟုတ်အားနည်းချက်အားနည်းနေခြင်းရှိမရှိအတည်ပြုရန် လက်ရှိစကားဝှက်သိုလှောင်မှုနည်းလမ်းကိုအကဲဖြတ်ပါ ။
အသုံးပြုသူ log in 0 င်ရောက်သောအခါစကားဝှက် hash format များကိုရှာဖွေတွေ့ရှိခြင်းကဲ့သို့သော ရွှေ့ပြောင်းခြင်းမဟာဗျူဟာများကိုဒီဇိုင်းဆွဲခြင်းပြုလုပ်ရန် နှင့်ရှေးဟောင်းပုံစံကိုအောင်မြင်စွာအတည်ပြုပြီးအပြီးတွင် crypt () ကို သုံးပါ။
အသုံးပြုသူအသစ်များကိုထည့်သွင်းခြင်းသို့မဟုတ်စကားဝှက်များကိုပြန်လည်သတ်မှတ်သောအခါစာဝှက်စနစ်နည်းလမ်းကိုတိုက်ရိုက်သုံးပါ။
စနစ်၏လုံခြုံရေး configuration ကိုအားဖြည့်ပါ , login ကြိုးစားမှုအရေအတွက်ကိုကန့်သတ်ပြီး HTTPS ကို သုံး. ဒေတာထုတ်လွှင့်မှုလုံခြုံရေးကိုကာကွယ်ပါ။
Salt General Logic ကိုကိုယ်တိုင်အကောင်အထည်ဖော်ပါ။ Senser_bytes () ကဲ့သို့သောခိုင်မာသောကျပန်းလုပ်ဆောင်ချက်များကိုအသုံးပြုရန်အကြံပြုသည်။
တန်ဖိုးနည်း algorithms ကိုမသုံးပါနှင့်, ကုန်ကျစရိတ် parameters တွေကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ထားပါ
URL မှစကားဝှက် hash ကိုတိုက်ရိုက်မသုံးပါနှင့်။
အကယ်. စနစ်က၎င်းကိုထောက်ပံ့ပါက PHP ၏ဇာတိ စကားဝှက်_Hash () နှင့် password_verify () လုပ်ဆောင်ချက်များကိုပေါင်းစပ်နိုင်သည် (PHP 5.5+) ကိုသင်ပေါင်းစပ်နိုင်သည်။ နောက်ခံအလွှာသည် crypt () ကို ပိုမိုတိကျသောလုံခြုံစိတ်ချရသော interface ကိုပေးရန်လည်းအသုံးပြုသည်။
<?php
$hash = password_hash('user_password', PASSWORD_BCRYPT);
if (password_verify('user_password', $hash)) {
echo "စကားဝှက်ကိုစစ်ဆေးခြင်းအောင်မြင်ခဲ့သည်";
}
?>
Crypt () function ကိုတရားဝင် PHP လက်စွဲစာအုပ် - https://m66.net/manual/en/function.Crypt.php တွင်ဖော်ပြထားသည်