PHP တွင် Crypt () function သည်ရိုးရာနှင့်အစွမ်းထက်သောစကားဝှက်စာဝှက်စနစ်ဖြစ်သည်။ အသုံးပြုသူစကားဝှက်များကိုသိုလှောင်ခြင်းနှင့်အတည်ပြုရန်သင့်တော်သောကွဲပြားခြားနားသောစာဝှက်စနစ်အယ်လ်လ်, ဤဆောင်းပါးသည် Crypt () function ကိုသုံးရန် Crypt () function ကိုသုံးရန်နှင့်စကားဝှက်၏အားသာချက်ကိုတိုးမြှင့်ပေးရန်အကောင်းဆုံးလုံခြုံရေးပြင်ဆင်မှုကိုမျှဝေရန်အတိမ်အနက်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Crypt () function ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
$hashed_password = crypt($password, $salt);
$ စကားဝှက် သည်အသုံးပြုသူမှထည့်သွင်းထားသောမူရင်းစကားဝှက်ဖြစ်သည်။
ဒေါ်လာဆား သည် Hashing algorithm နှင့်ရလဒ်ပုံစံကိုဆုံးဖြတ်ပေးသော encryption method method ကိုထိန်းချုပ်ရန်အသုံးပြုသောဆားတန်ဖိုးဖြစ်သည်။
ဆားတန်ဖိုးပုံစံသည်စကားဝှက်၏လုံခြုံရေးကိုတိုက်ရိုက်သက်ရောက်သည်။ Crypt () တွင်ထောက်ပံ့သောဆားတန်ဖိုးပုံစံများ -
Des (Default, Salt အရှည်သည်စာလုံးရေ 2 လုံး,
MD5 (ဆားပုံစံ - $ 1 $ 1 $ + 8 ဇာတ်ကောင်ဆား)
blowish (ဆားပုံစံ - $ 2A $ သို့မဟုတ် $ 2Y $ 2Y $ 2 ဒီဂဏန်းကုန်ကျစရိတ် + 22- ဇာတ်ကောင်ဆား)
Sha-256 (ဆားပုံစံ - $ 5 $ + ဆား)
Sha-512 (ဆားပုံစံ - $ 6 $ + ဆား)
စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးသည် algorithm ကိုယ်နှိုက်ပေါ်တွင်သာမကဆား၏ခွန်အားနှင့် algorithm ၏စွမ်းအားကိုလည်းမှီခိုသည်။
ဆား၏လုပ်ဆောင်ချက် - သက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများကိုကာကွယ်ရန်နှင့်တူညီသောစကားဝှက်ကိုအချိန်တိုင်းစာဝှက်ထားကြောင်းသေချာစေသည်။
algorithm အစွမ်းသတ္တိ - ပိုမိုရှုပ်ထွေးသော algorithms နှင့်ပိုမိုမြင့်မားသောကွန်ပျူတာကုန်ကျစရိတ်များ (အလုပ်အကြောင်းအရင်း) brute-force cracking ကိုခုခံတွန်းလှန်နိုင်။
အောက်ပါဥပမာသည် Surfer Password ကိုထုတ်လုပ်ရန် blowfish algorithm ( $ 2Y $ ) နှင့် တွဲဖက်. Crypt ( 2-2Y $) နှင့်တွဲဖက်ရန်မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
function generateSecureHash($password) {
// ဖြစ်ပါှးစေ22လုံခြုံကျပန်းဆားနည်းနည်း
$salt = substr(str_replace('+', '.', base64_encode(random_bytes(16))), 0, 22);
// Blowfishအဆိုပါ algorithm ၏ကုန်ကျစရိတ် parameters တွေကို,အဆိုပါအတိုင်းအတာယေဘုယျအားဖြင့်ဖြစ်ပါတယ်04~31,ပျက်ကွက်ခြင်း12ပိုမိုလုံခြုံ
$cost = '12';
// တစ် ဦး ဆား string ကိုတည်ဆောက်ခြင်း,ပုံစံဖြစ်ပါတယ် $2y$ပေးရ$ဆား
$blowfish_salt = sprintf('$2y$%02d$%s', $cost, $salt);
// ဖြစ်ပါှးစေစာဝှက်ထားတဲ့စကားဝှက် hash
return crypt($password, $blowfish_salt);
}
// စမ်းသပ်မှု
$password = "MyS3cureP@ss!";
$hash = generateSecureHash($password);
echo "စာဝှက်ထားတဲ့စကားဝှက် hash: " . $hash;
?>
High-intoRity ကျပန်းဆားထုတ်လုပ်ရန်အတွက် mander_bytes () ကိုသုံးပါ။
$ 2Y $ ကို $ 2Y $ ကို Blowfish algorithm ကိုကိုယ်စားပြုရန်အသုံးပြုသည်။ ၎င်းသည်လုံခြုံစိတ်ချရသောစကားဝှက်သိုလှောင်မှုအတွက်သင့်လျော်သည်။
ကုန်ကျစရိတ် parameter သည် ကုန်ကျစရိတ်သည် algorithm ၏ရှုပ်ထွေးမှုကိုဆုံးဖြတ်သည်။ ကုန်ကျစရိတ်မြင့်လေလေ, ပိုမိုလုံခြုံမှုရှိသော်လည်းတွက်ချက်မှုအချိန်ကြာလေလေဖြစ်သည်။ စွမ်းဆောင်ရည်နှင့်လုံခြုံမှုကိုဟန်ချက်ညီစေရန်အကြံပြုထားသောတန်ဖိုး။
စကားဝှက်ကိုအတည်ပြုသည့်အခါအသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်ကို Crypt () function ကို အသုံးပြု. သိမ်းဆည်းထားသောဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောစကားဝှက်ကိုပြန်လည်ဝှက်ထားပါသည်။
<?php
function verifyPassword($password, $stored_hash) {
// အသုံးပြု存储的哈希中的ဆား重新加密密码
$hash = crypt($password, $stored_hash);
// အသုံးပြုhash_equalsအချိန်တိုက်ခိုက်မှုလုံခြုံရေးနှိုင်းယှဉ်တားဆီး
return hash_equals($hash, $stored_hash);
}
// စမ်းသပ်မှု验证
$input_password = "MyS3cureP@ss!";
if (verifyPassword($input_password, $hash)) {
echo "စကားဝှက်ကိုစစ်ဆေးခြင်းအောင်မြင်ခဲ့သည်!";
} else {
echo "စကားဝှက်!";
}
?>
ခိုင်ခံ့သောကျပန်းဆားများကိုသုံးပါ ။ သို့မဟုတ်ကြိုတင်ခန့်မှန်းနိုင်သောဆားများကိုမသုံးပါနှင့်။
မှန်ကန်သော algorithm ကိုရွေးပါ ။ Blowish ( $ 2Y $ ), Sha-256 ( $ 5. ) သို့မဟုတ် Sha-512 ($ 6 $ ) သို့မဟုတ် Sha-512 ( $ 6 $ ) ။
ကုန်ကျစရိတ် parameters တွေကိုချိန်ညှိပါ - ကုန်ကျစရိတ်မြင့်လေလေ, တွက်ချက်မှုပိုမိုများပြားလေလေ, ကျိုးကြောင်းဆီလျော်ချိန်ခွင်လျှာ။
စကားဝှက်ကြိုးစားမှုကိုကန့်သတ်ပါ ။ brute-force cracking ကိုတားဆီးပါ။
Password ရှုပ်ထွေးသောနည်းဗျူဟာနှင့်အတူပေါင်းစပ် : အတင်းအဓမ္မစကားဝှက်အရှည်နှင့်ဇာတ်ကောင်ကွဲပြားခြားနားသော။
algorithms နှင့်ကုန်ကျစရိတ် parameters တွေကိုပုံမှန်မွမ်းမံပါ ။
PHP တရားဝင်စာရွက်စာတမ်းများ https://www.m66.net/manual/zh/function.Crypt.php