PHP တွင် Crypt () function ကိုမကြာခဏစကားဝှက်များကိုစာဝှက်ရန်အသုံးပြုသည်။ ၎င်းသည် MD5, MD5, Sha-256 နှင့် Sha-512 ကဲ့သို့သော Hashing algorithms အမျိုးမျိုးကိုအထောက်အကူပြုနိုင်သည်။ ဆားတန်ဖိုးသည်စကားဝှက်၏ရှုပ်ထွေးမှုကိုတိုးပွားစေရုံသာမက 4 င်းတို့၏နည်းလမ်းနှင့် 4 င်းတို့၏နည်းလမ်းကိုဆုံးဖြတ်သည်။ Salt Value သည်မမှန်ကန်ပါကသုံးစွဲသူသည်မှန်ကန်သောမူရင်းစကားဝှက်ကိုဝင်လျှင်ပင်အတည်ပြုရန်မဖြစ်နိုင်ပါ။
Crypt () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
$hashed_password = crypt('မူရင်းစကားဝှက်', 'ဆားတန်ဖိုး');
စိစစ်အတည်ပြုစဉ်အတွင်းအသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်ကိုများသောအားဖြင့်ယခင်သိုလှောင်ထားသော hashh ကိုဆားတန်ဖိုးအဖြစ် အသုံးပြု. ပြန်လည်ဝှက်ထားလေ့ရှိသည်။
if (crypt($input_password, $stored_hash) === $stored_hash) {
// စကားဝှက်မှန်
}
ဤနေရာတွင်သော့ချက်မှာ - hash ကိုယ်နှိုက်သည်အပြည့်အ 0 algorithms နှင့်ဆားတန်ဖိုးများကိုအသုံးပြုခြင်းကိုသေချာစေရန်ဆားတန်ဖိုး၏တစ်စိတ်တစ်ပိုင်းအဖြစ်သတ်မှတ်ထားသည် ။
ဆားတန်ဖိုး၏အဓိကလုပ်ဆောင်ချက်နှစ်ခုရှိသည်။
သက်တန့်စားပွဲတင်တိုက်ခိုက်မှုကိုတားဆီးပါ။ အသုံးပြုသူနှစ် ဦး သည်တူညီသောစကားဝှက်ကိုအသုံးပြုနေလျှင်ပင်သူတို့၏ Hash ရလဒ်သည်ဆားတန်ဖိုးများကိုထည့်သွင်းပြီးနောက်ကွဲပြားခြားနားလိမ့်မည်။
crypt () encryption algorithm နှင့်၎င်း၏ parameters တွေကိုအသုံးပြုရန်
ဥပမာအားဖြင့်, အောက်ပါဆားတန်ဖိုးသည် Sha-512 algorithm ကို အသုံးပြု. အကြိမ် 5000 အထိရှိသည်။
$salt = '$6$rounds=5000$usesomesillystringforsalt$';
အကယ်. သင်သည်တူညီသောစကားဝှက်ကိုမတူညီသောဆားတန်ဖိုးများဖြင့်ပြန်လည်ဝှက်ရန်ကြိုးစားပါက (တစ် ဦး တည်းသာကွဲပြားခြားနားလျှင်ပင်) ရလဒ်သည်လုံးဝကွဲပြားခြားနားလိမ့်မည်။ ဤသည်မှာ Hash လုပ်ဆောင်ချက်၏ထူးခြားသောလက်ခဏာဖြစ်သည်။ အနည်းငယ်ပြောင်းလဲမှုသည် output ရလဒ်များကိုကြီးမားသောခြားနားချက်ကိုဖြစ်ပေါ်စေလိမ့်မည် ။
ဇာတ်လမ်းတစ်ပုဒ်ကိုမြင်ယောင်ကြည့်ပါ။
$original_hash = crypt('mySecretPassword', '$6$rounds=5000$m66.net$');
အသုံးပြုသူသည်နောက်တစ်ကြိမ်တွင်မှတ်တမ်းတင်သောအခါ, အစီအစဉ်သည်အောက်ပါအတိုင်းစီရင်ချက်ချသည်။
if (crypt('mySecretPassword', '$6$rounds=5000$wrongdomain.com$') === $original_hash) {
echo 'စကားဝှက်မှန်';
} else {
echo 'စကားဝှက်';
}
အသုံးပြုသူသည်မှန်ကန်သောစကားဝှက်ကိုထည့်သွင်းထားသော်လည်း Crypt () သည် မတူညီသောဆားတန်ဖိုးများကြောင့်လုံးဝကွဲပြားခြားနားသော hash ကိုထုတ်လုပ်လိမ့်မည်။
သင်တူညီသောစာရွက် (စကားဝှက်) ကိုသုံးသည်, သို့သော်ကွဲပြားခြားနားသောပါဝင်ပစ္စည်းများ (ဆား) ကိုအသုံးပြုခြင်းသည်ကွဲပြားခြားနားသောပါဝင်ပစ္စည်းများ (SAL) ကိုအသုံးပြုခြင်းသည်သဘာဝအားဖြင့်ကွဲပြားခြားနားသည်။
မှားယွင်းသောအလေ့အကျင့်:
သင်အတည်ပြုသည့်အခါတိုင်းကျပန်းဆားတန်ဖိုးအသစ်တစ်ခုကိုထုတ်လုပ်ပါ။
မူရင်း hash တန်ဖိုးကိုစိစစ်ရေးစဉ်အတွင်းဆားတန်ဖိုးအဖြစ်မသုံးပါ။
လက်ဖြင့်သိုလှောင်ထားသော hash တန်ဖိုးများကိုလက်ဖြင့်ဆွဲပါ။
လုပ်ရန်မှန်ကန်သောနည်းလမ်း -
Password_Hash () နှင့် password_verify () ကဲ့သို့သောအဆင့်မြင့် APIs များကိုအသုံးပြုခြင်းသည်ဆားတန်ဖိုးများနှင့် algorithms များကိုအလိုအလျောက်စီမံသည်။
အကယ်. သင်သည် Crypt () ကို အသုံးပြုပါက,