PHP's crypt () function ကိုအသုံးပြုသောအခါစကားဝှက်ကိုဆေးထည့်ရန်အတွက်ဆားလုံခြုံရေးသည်စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးကိုတိုက်ရိုက်သက်ရောက်သည်။ ဆားတန်ဖိုး၏လုပ်ဆောင်မှုသည်တူညီသောစကားဝှက်ကိုတူညီသော hash တန်ဖိုးကိုထုတ်လုပ်ခြင်းမှကာကွယ်ရန်ဖြစ်သည်။ ထို့ကြောင့်လုံခြုံပြီးစိတ်ချရသောဆားတန်ဖိုးကိုထုတ်လုပ်ရန်အလွန်အရေးကြီးသည်။
ဆားတန်ဖိုးသည်စကားဝှက်ကိုဖြည့်ဆည်းပေးပြီး hashed ကိုထည့်သွင်းထားသည့်ကျပန်း string တစ်ခုဖြစ်သည်။ ဆားငန်တန်ဖိုးကောင်းတစ်ခုမှာအောက်ပါလက္ခဏာများလိုအပ်သည်။
ထူးခွားတဲ့ကျပန်း - စကားဝှက်တစ်ခုစီသည်ထူးခြားသောဆားနှင့်ကိုက်ညီသည်။
အလုံအလောက်ရှည်လျား: အလွယ်တကူခန့်မှန်းထားတဲ့ဆားတန်ဖိုးကိုရှောင်ပါ။
Hashing algorithms အတွက်သင့်တော်သည် - မတူညီသော algorithms ကွဲပြားခြားနားသော Algorithms သည်ဆားတန်ဖိုးနှင့်ပုံစံအတွက်လိုအပ်ချက်များရှိသည်။
Crypt () သည် စာဝှက်စနစ်ကိုစာဝှက်စနစ်များစွာကိုထောက်ပံ့ပေးပြီးမတူညီသော algorithms ကွဲပြားခြားနားသော Algorithms သည်ဆားတန်ဖိုးပုံစံများအတွက်လိုအပ်ချက်အမျိုးမျိုးရှိသည်။ ဘုံ algorithms နှင့်ဆားတန်ဖိုးပုံစံများကိုအောက်ပါအတိုင်းဖြစ်သည် -
Des : ဆားတန်ဖိုးသည်အရှည် 2 လုံးဖြစ်သည်။
MD5 - ဒေါ်လာ 1 ဒေါ်လာ ဖြင့်ဒေါ်လာ 1 ဒေါ်လာဖြင့်ဒေါ်လာ 1 ဒေါ်လာဖြင့် ဒေါ်လာ 1 ဒေါ်လာဖြင့်ဒေါ်လာ 1 ဒေါ်လာဖြင့်ဒေါ်လာ 1 ဒေါ်လာဖြင့် ရောင်းချပါ။
Blowish : $ 2A မှ $ 2A $ သို့မဟုတ် $ 2y $ ဖြင့်စတင်ပါ, နောက်တွင်ဒေါ်လာ 28 ဒေါ်လာတန် $ 10 $ 10 $ abcdefghghghghijklnopqrstuv စသည့်ဂဏန်းနှစ်လုံးကုန်ကျသောကုန်ကျစရိတ်နှင့်ဆားတန်ဖိုး 22 ခုဖြင့်စတင်ပါ။
Sha-256 : ဒေါ်လာ 5 ဒေါ်လာ ဖြင့်စတင်ပါ,
Sha-512 : ဒေါ်လာ 6 ဒေါ်လာ ဖြင့်စတင်ပါ,
blowfish ( $ 2Y $ ) သို့မဟုတ် Sha-512 ($ 6.22 ( $ 6. $ ) algorithms များသည်ဆားငန်တန်ဖိုးများကိုပိုမိုကြာမြင့်စွာထောက်ပံ့သောကြောင့်အကြံပြုသည်။
ဆားတန်ဖိုးများကိုထုတ်လုပ်ရန်သော့ချက်မှာလုံခြုံသောကျပန်းနံပါတ်မျိုးဆက်လုပ်ဆောင်ချက်များကိုအသုံးပြုရန်ဖြစ်ပြီးသက်ဆိုင်ရာ algorithm ၏ဆားတန်ဖိုးပုံစံလိုအပ်ချက်များနှင့်ကိုက်ညီစေရန်ဖြစ်သည်။
နမူနာကုဒ်:
<?php
function generateSalt($algo = 'bcrypt') {
switch ($algo) {
case 'bcrypt':
// Blowfish လိုအပ်ချက် 22 မရေွှးသော Base64 လူသူမ,ကုန်ကျစရိတ်သည် 10
$cost = 10;
// ကျပန်း bytes သုံးပြီး,转换成可用的လူသူမ集
$randomBytes = random_bytes(16);
$base64String = substr(strtr(base64_encode($randomBytes), '+', '.'), 0, 22);
return sprintf('$2y$%02d$%s', $cost, $base64String);
case 'sha512':
// SHA-512 အများဆုံးခွင့်ပြုပါ16လူသူမ盐
$randomBytes = random_bytes(12);
return '$6$' . substr(strtr(base64_encode($randomBytes), '+', '.'), 0, 16);
default:
throw new Exception("Unsupported algorithm");
}
}
// အသုံးပြုမှုဥပမာ
$password = 'user_password';
$salt = generateSalt('bcrypt');
$hash = crypt($password, $salt);
echo "ဆားတန်ဖိုး:$salt\n";
echo "hash တန်ဖိုး:$hash\n";
?>
အထက်ပါကုဒ်၌:
DismanT_bytes () ကို လုံခြုံကျပန်း bytes ထုတ်လုပ်ရန်အသုံးပြုသည်။
Base64_encode () သည် Salt Value format လိုအပ်ချက်များကိုဖြည့်ဆည်းရန် + နှင့်အတူ + ဖြင့် အစားထိုးသည်။
Blowish သည်ကုန်ကျစရိတ် 10 ကိုအသုံးပြုသည်။ ၎င်းသည်စွမ်းဆောင်ရည်ကိုလုံခြုံပြီးအကျိုးသင့်အကြောင်းသင့်ရှိသည်။
ထုတ်လုပ်ထားသောဆားတန်ဖိုးသည် Crypt () လိုအပ်သောပုံစံဖြင့်တင်းကြပ်စွာရှိသည်။
PHP 7.2 နှင့်အထက်အထက်တွင်အထက်တွင်ဆားတန်ဖိုးထုတ်လုပ်မှုနှင့် algorithm ရွေးချယ်ခြင်းကိုအလိုအလျောက်ကိုင်တွယ်သော built-in password_hash () function ကို အသုံးပြု. အထူးအကြံပြုလိုပါသည်။
<?php
$password = 'user_password';
$hash = password_hash($password, PASSWORD_BCRYPT);
echo $hash;
?>
အကယ်. သင်သည် crypt () ကို ကိုယ်တိုင်ကိုယ်ကျအသုံးပြုရန်လိုပါကဆားတန်ဖိုးသည်လုံခြုံပြီးကျပန်းဖြစ်အောင်သေချာအောင်သေချာအောင်လုပ်ပါ။