လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Substrict () PHP ၏ crypt () function တွင်ဆားအပိုင်းကိုထုတ်ယူပြီးစစ်ဆေးရန်နည်း။

Substrict () PHP ၏ crypt () function တွင်ဆားအပိုင်းကိုထုတ်ယူပြီးစစ်ဆေးရန်နည်း။

M66 2025-07-20

PHP တွင် Crypt () function သည်စကားဝှက်များ၏လုံခြုံရေးကိုမြှင့်တင်ရန် "ဆား" ကိုအသုံးပြုသော "ဆား" ကိုအသုံးပြုသော "ဆား" ကိုအသုံးပြုသော password hasping tool ကိုအသုံးပြုသည်။ ဆား၏လုပ်ဆောင်ချက်သည်ဆေးကုသမှုခံယူခြင်းနှင့်သက်တိမ်းစားပွဲဝိုင်းတိုက်ခိုက်မှုများကိုတားဆီးရန်ဖြစ်သည်။ crypt () function မှထုတ်လုပ်သော hashes မှဆားထုတ်ယူခြင်းနှင့်စစ်ဆေးရန်မည်သို့အတည်ပြုရမည်ကိုနားလည်ခြင်းသည်စကားဝှက်ထုတ်လုပ်မှုကိုကျွမ်းကျင်ပိုင်နိုင်စွာကျွမ်းကျင်မှု၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။

ဤဆောင်းပါးသည် PHP ၏ Substruct () function ကို သုံး. crypt ( ) function ကို သုံး. crypt () ၏ returpt () ကိုပြန်လည်ထုတ်ယူခြင်းနှင့်၎င်းကိုရိုးရိုးရှင်းရှင်းစိစစ်ရေးလုပ်ဆောင်ခြင်းကိုမိတ်ဆက်ပေးလိမ့်မည်။

ဆားဆိုတာဘာလဲ

SALL သည်စာဝှက်ထားသည့်အခါမူရင်းစကားဝှက်နှင့်ပေါင်းစပ်ထားသောကျပန်း string ကိုဖြစ်သည်။ အသုံးပြုသူများနှစ် ဦး စလုံး၏စကားဝှက်များသည်အတူတူပင်ဖြစ်လျှင်ပင်ထုတ်လုပ်ထားသော hash တန်ဖိုးများသည်ကွဲပြားခြားနားသည်။

Crypt () function တွင်, ဆား၏ format နှင့်အရှည်သည် encryption algorithm အရသိရသည်ကွဲပြားသည်။

  • des : ဆား 2 ဇာတ်ကောင်

  • MD5 - ဒေါ်လာ 1 ဒေါ်လာ ဖြင့်စတင်ပါ

  • Blowish : $ 2A $ သို့မဟုတ် $ 2y $ ဖြင့်စတင်ပါ, နောက်တွင်ဂဏန်းနှစ်လုံးကုန်ကျစရိတ်နှင့် 22- ဇာတ်ကောင်ဆားဖြင့်စတင်ပါ

ဆားငန်နှင့်ဆားထုတ်ယူနည်း ()

သင် MD5 algorithm ကိုအသုံးပြုနေသည်ဆိုပါစို့။ ၎င်း၏ဆားပုံစံမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $1$ + 8ဆားဆား

ဥပမာအားဖြင့်, ပုံမှန် md5 hash တန်ဖိုး:

 $hash = crypt('password', '$1$abcdefgh$');

ပြန်လာသော Hash သည်

 $1$abcdefgh$ZxR0LnxZPbQ5Cj7JlYiGp0

ဆားသည်ပထမစာလုံး 12 လုံးဖြစ်သည်။ $ 1 $ abcdefgh $

ဆားနမူနာကုဒ်ကို substric နှင့်အတူထုတ်ယူပါ ()

 <?php
$hash = crypt('password', '$1$abcdefgh$');

// ထုတ်ယူဆား၏အရှည်ဖြစ်ပါတယ်12ဇာတ်ကောင်
$salt = substr($hash, 0, 12);

echo "အဆိုပါထုတ်ယူဆားဖြစ်ပါတယ်: " . $salt;
?>

ဆားသည်မျှော်လင့်ထားသည့်ပုံစံနှင့်ကိုက်ညီကြောင်းစစ်ဆေးပါ

ထုတ်ယူထားသောဆားသည်ပုံမှန်အသုံးအနှုန်းများမှတစ်ဆင့်မျှော်လင့်ချက်များနှင့်ကိုက်ညီကြောင်းကျွန်ုပ်တို့အတည်ပြုနိုင်သည်။ ဥပမာအားဖြင့် MD5 ဆားကိုပုံမှန်ဖော်ပြခြင်း -

 /^(\$1\$[\.\/0-9a-zA-Z]{1,8}\$)$/

နမူနာကုဒ်:

 <?php
$salt = substr($hash, 0, 12);

if (preg_match('/^\$1\$[\.\/0-9a-zA-Z]{1,8}\$/', $salt)) {
    echo "မှန်ကန်သောဆားပုံစံ";
} else {
    echo "မမှန်ကန်သောဆားပုံစံ";
}
?>

ကောင်းသောအသေးစိတ်ဥပမာ

Hash ကိုထုတ်လုပ်ခြင်း, ဆားထုတ်ယူခြင်းနှင့်ဆားကိုထုတ်ဖော်ပြသခြင်းပါဝင်သောအပြည့်အဝဥပမာတစ်ခုဖြစ်သည်။

 <?php
$password = 'mypassword';

// အသုံးပြု MD5 algorithm ဆားထုတ်လုပ်သည်($1$ + 8ကျပန်းဇာတ်ကောင် + $)
$salt = '$1$' . substr(strtr(base64_encode(random_bytes(6)), '+', '.'), 0, 8) . '$';

// hash generate
$hash = crypt($password, $salt);

echo "ထုတ်လုပ်လိုက်တဲ့ hash: $hash\n";

// hash ကနေဆားထုတ်ယူ
$extracted_salt = substr($hash, 0, 12);

echo "ထုတ်ယူဆား: $extracted_salt\n";

// ဆားပုံစံကိုစစ်ဆေးပါ
if (preg_match('/^\$1\$[\.\/0-9a-zA-Z]{1,8}\$/', $extracted_salt)) {
    echo "Salt Format စစ်ဆေးခြင်းကိုအတည်ပြုသည်\n";
} else {
    echo "Salt format စစ်ဆေးခြင်းမအောင်မြင်ပါ\n";
}
?>

အကျဉ်းချုပ်

  • Crypt () function ၏ function ၏ function ကို) function ကို encryption algorithm နှင့်ဆက်စပ်သောအရာနှင့်ကွဲပြားခြားနားသောအရှည်နှင့်အဆောက်အအုံများနှင့်ဆက်စပ်သောဖြစ်ပါတယ်။

  • Hash မှဆားအစိတ်အပိုင်းကိုအလွယ်တကူဖြည်ချရန် Substr () ကို သုံးပါ။

  • ပုံမှန်အသုံးအနှုန်းများပါသောဆားပုံစံကိုစစ်ဆေးခြင်းသည်စာဝှက်စနစ် algorithm ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်ပြီးလုံခြုံရေးကိုပိုမိုကောင်းမွန်စေနိုင်သည်။