PHP တွင် Crypt လုပ်ဆောင်ချက်များကို password encryption အတွက်အသုံးပြုလေ့ရှိသည်။ ၎င်းသည် encryption custom ကို "ဆား" (ဆား) မှတဆင့် condence encryption encryption ရလဒ်များကွဲပြားခြားနားသော, သို့သော် Crypt လုပ်ဆောင်ချက်များကိုအသုံးပြုသောအခါဆားသည်ပြန်လည်သုံးသပ်ပါက၎င်းသည်လျှို့ဝှက်နံပါတ်ကိုအလေးအနက်ထားပြီးအက်ကွဲခြင်းအန္တရာယ်ကိုတိုးပွားစေလိမ့်မည်။ ဤဆောင်းပါးသည်ဆားငန်ပြန်လည်အသုံးပြုခြင်း၏လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုပိုမိုနက်နက်ရှိုင်းရှိုင်းလေ့လာသုံးသပ်ပြီး php php တွင်ဆားပွန်မှုကာကွယ်မှုကိုပိုမိုကောင်းမွန်စေရန်နှင့် PHP တွင်ဆားကိုမည်သို့အသုံးပြုရမည်ကိုဝေမျှလိမ့်မည်။
SALD သည်စာဝှက်သည့်အခါစကားဝှက်နှင့်တွဲထားသောကျပန်းဒေတာဖြစ်သည်။ အသုံးပြုသူနှစ် ဦး သည်တူညီသောစကားဝှက်တစ်ခုရှိလျှင်ပင် encryption ရလဒ်သည်ကွဲပြားခြားနားသည်။ ဆား၏အဓိကလုပ်ဆောင်ချက်များမှာ -
တူညီသော hash ကိုထုတ်လုပ်ခြင်းမှတူညီသောစကားဝှက်ကိုတားဆီးပါ။
သက်တန့်စားပွဲတင်တိုက်ခိုက်မှုများကိုရှောင်ကြဉ်ပါ။
စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးကိုတိုးတက်အောင်လုပ်ပါ။
အကယ်. ဆားကိုပြန်လည်အသုံးပြုပါကအထူးသဖြင့်ကွဲပြားသောစကားဝှက်များအကြားတိုက်ခိုက်သူများသည်ဤအရာကို အသုံးပြု. လုံခြုံရေးကိုအလွန်လျော့နည်းစေသည်။
တူညီသောစကားဝှက်သည်အတူတူပင် hash ထုတ်လုပ်သည်
အကယ်. ဆားသည်အတူတူပင်ဖြစ်ပါကတူညီသောစကားဝှက်ကိုစာဝှက်ခြင်းရလဒ်များသည်အတူတူပင်ဖြစ်သည်။ တိုက်ခိုက်သူသည်အကောင့်ကိုတူညီသောစကားဝှက်ဖြင့်အလွယ်တကူခွဲခြားသတ်မှတ်နိုင်သည်။
စကားဝှက်ကွဲခြင်း တူညီသောဆားစကားဝှက်ကိုအသုံးပြုခြင်းသည်တစ်ချိန်တည်းတွင်စကားဝှက် hashes များစွာကိုအက်ကွဲရန်ကြိုးစားနိုင်သည်။
တိုက်ခိုက်မှုတံခါးခုံကိုလျှော့ချ စကားဝှက်ကိုဒေတာဘေ့စ်ပေါက်ကြားပြီးနောက်ဆားအတွက်ဆားများအတွက်ဆားများအတွက်ဆားများအတွက်ဆားများအတွက် cracking စားပွဲများတည်ဆောက်ရန်ပိုမိုလွယ်ကူစေလိမ့်မည်။
PHP တွင်သင်သည် DiscL_Bytes (သို့) Openssl_random_pseudom_pseudoudo_pseudoudo_bytes များကို ဆားအဖြစ်ဆားအဖြစ်ဆားအဖြစ်သုံးနိုင်သည်။
function generateSalt($length = 22) {
$bytes = random_bytes($length);
// base64သင့်လျော်စွာဖြင့်အစားထိုးပါcryptဇာတ်ကောင်အစုံ
return substr(str_replace(['+', '/', '='], ['.', '.', ''], base64_encode($bytes)), 0, $length);
}
PHP 5.5 နှင့်အထက်ပါ philver_hash function ကိုအသုံးပြုရန်အကြံပြုသည်, ၎င်းသည်ထူးခြားသောဆားကိုအလိုအလျောက်ထုတ်လုပ်နိုင်ပြီး developer operations များကိုလွယ်ကူစွာပိုမိုလုံခြုံအောင်ပြုလုပ်နိုင်သည်။
$password = 'your_password';
$hash = password_hash($password, PASSWORD_BCRYPT);
အချို့သော developer တချို့ကဥပမာအားဖြင့်ဆားကိုကိုယ်တိုင်သတ်မှတ်လိုကြသည်။
$hash = crypt($password, '$2y$10$fixed_salt_value_here');
၎င်းသည်အလွန်အန္တရာယ်မကင်းသောဆားနှင့်တူညီသောဆားကိုသုံးရန်စကားဝှက်အားလုံးကိုဖြစ်စေလိမ့်မည်။ ဒီအလေ့အကျင့်ကိုရှောင်ကြဉ်ရပါမည်။
dynamically ထုတ်လုပ်ထားသောဆားကို သုံး. format သည် algorithm လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်။ ဥပမာအားဖြင့်, BCRYPT algorithm သည်ဆား 22 ခုကိုအရှည် 22 ခုသာရှိသည်။
$salt = '$2y$10$' . generateSalt(22);
$hash = crypt($password, $salt);
အကယ်. သင်သည်ဆားကိုကိုယ်တိုင်စီမံခန့်ခွဲရန်လိုအပ်ပါကမှန်ကန်သောဆားကိုသေချာစွာအသုံးပြုနိုင်ရန်သေချာစေရန်သင်၏စကားဝှက်ကို hash hash နှင့်အတူဆားသိုထားရန်သေချာပါစေ။
function generateSalt($length = 22) {
$bytes = random_bytes($length);
return substr(str_replace(['+', '/', '='], ['.', '.', ''], base64_encode($bytes)), 0, $length);
}
$password = 'user_password';
// BcryptပမာဏSalt,10အတွက်costအဘိုး
$salt = '$2y$10$' . generateSalt(22);
$hash = crypt($password, $salt);
echo "Hashed password: " . $hash;
ဆားပြန်လည်အသုံးပြုခြင်းကိုကာကွယ်ခြင်းသည်စကားဝှက်လုံခြုံရေးကိုသေချာစေရန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ PHP ၏ built-in password_hash function ကိုအသုံးပြုရန် Password encryption ကိုအပြီးသတ်ရန်အသုံးပြုရန်အကြံပြုသည်။ Crypt function ကိုအသုံးပြုနေပါကဆားကိုထပ်ခါတလဲလဲအသုံးပြုခြင်းကြောင့်စကားဝှက်စာဝှက်ခြင်းမရှိတော့ပါ။ မှန်ကန်သောကိုင်တွယ်မှုသည်စနစ်လုံခြုံရေးကိုများစွာတိုးတက်စေပြီးစကားဝှက်ယိုစိမ့်မှုကြောင့်ဖြစ်ပေါ်လာသောအန္တရာယ်များကိုလျှော့ချနိုင်သည်။