လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Crypt အတွက်လုံခြုံစိတ်ချရသောဆားတန်ဖိုးများကိုထုတ်လုပ်နည်း

Crypt အတွက်လုံခြုံစိတ်ချရသောဆားတန်ဖိုးများကိုထုတ်လုပ်နည်း

M66 2025-05-21

PHP's crypt () function ကိုအသုံးပြုသောအခါစကားဝှက်ကိုဆေးထည့်ရန်အတွက်ဆားလုံခြုံရေးသည်စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးကိုတိုက်ရိုက်သက်ရောက်သည်။ ဆားတန်ဖိုး၏လုပ်ဆောင်မှုသည်တူညီသောစကားဝှက်ကိုတူညီသော hash တန်ဖိုးကိုထုတ်လုပ်ခြင်းမှကာကွယ်ရန်ဖြစ်သည်။ ထို့ကြောင့်လုံခြုံပြီးစိတ်ချရသောဆားတန်ဖိုးကိုထုတ်လုပ်ရန်အလွန်အရေးကြီးသည်။

1 ။ ဆားတန်ဖိုးဆိုတာဘာလဲ။

ဆားတန်ဖိုးသည်စကားဝှက်ကိုဖြည့်ဆည်းပေးပြီး hashed ကိုထည့်သွင်းထားသည့်ကျပန်း string တစ်ခုဖြစ်သည်။ ဆားငန်တန်ဖိုးကောင်းတစ်ခုမှာအောက်ပါလက္ခဏာများလိုအပ်သည်။

  • ထူးခွားတဲ့ကျပန်း - စကားဝှက်တစ်ခုစီသည်ထူးခြားသောဆားနှင့်ကိုက်ညီသည်။

  • အလုံအလောက်ရှည်လျား: အလွယ်တကူခန့်မှန်းထားတဲ့ဆားတန်ဖိုးကိုရှောင်ပါ။

  • Hashing algorithms အတွက်သင့်တော်သည် - မတူညီသော algorithms ကွဲပြားခြားနားသော Algorithms သည်ဆားတန်ဖိုးနှင့်ပုံစံအတွက်လိုအပ်ချက်များရှိသည်။

2 ။ PHP Crypt () function ကိုထောက်ပံ့ပေးသောဆားတန်ဖိုးပုံစံ

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 များသည်ဆားငန်တန်ဖိုးများကိုပိုမိုကြာမြင့်စွာထောက်ပံ့သောကြောင့်အကြံပြုသည်။

3 ။ လုံခြုံပြီးစိတ်ချရသောဆားတန်ဖိုးများကိုဘယ်လိုထုတ်လုပ်နိုင်မလဲ။

ဆားတန်ဖိုးများကိုထုတ်လုပ်ရန်သော့ချက်မှာလုံခြုံသောကျပန်းနံပါတ်မျိုးဆက်လုပ်ဆောင်ချက်များကိုအသုံးပြုရန်ဖြစ်ပြီးသက်ဆိုင်ရာ 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 () လိုအပ်သောပုံစံဖြင့်တင်းကြပ်စွာရှိသည်။

4 ။ အကြံပြုထားသောအသုံးပြုမှုနည်းလမ်း

PHP 7.2 နှင့်အထက်အထက်တွင်အထက်တွင်ဆားတန်ဖိုးထုတ်လုပ်မှုနှင့် algorithm ရွေးချယ်ခြင်းကိုအလိုအလျောက်ကိုင်တွယ်သော built-in password_hash () function ကို အသုံးပြု. အထူးအကြံပြုလိုပါသည်။

 <?php
$password = 'user_password';
$hash = password_hash($password, PASSWORD_BCRYPT);
echo $hash;
?>

အကယ်. သင်သည် crypt () ကို ကိုယ်တိုင်ကိုယ်ကျအသုံးပြုရန်လိုပါကဆားတန်ဖိုးသည်လုံခြုံပြီးကျပန်းဖြစ်အောင်သေချာအောင်သေချာအောင်လုပ်ပါ။