လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Crypt () function နှင့်တူညီသောအကြောင်းအရာကိုစာဝှက်သောအခါအဘယ်ကြောင့်ငါအစဉ်အမြဲ encryption ရလဒ်ကိုပြန်လာကြသနည်း။

Crypt () function နှင့်တူညီသောအကြောင်းအရာကိုစာဝှက်သောအခါအဘယ်ကြောင့်ငါအစဉ်အမြဲ encryption ရလဒ်ကိုပြန်လာကြသနည်း။

M66 2025-06-15

PHP တွင် Crypt () တွင် password processing နှင့် data encryption ၏အခြေအနေများတွင်ကျယ်ပြန့်စွာအသုံးပြုသော hash encryption အတွက် function တစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည် Crypt () function ကို အသုံးပြု. တူညီသောအကြောင်းအရာကိုစာဝှက်သောအခါရှာဖွေတွေ့ရှိရန်အံ့အားသင့်ကြသည်။

ဤဆောင်းပါးသည်သင့်အားဤဖြစ်စဉ်နောက်ကွယ်ရှိအကြောင်းရင်းများကိုနက်နက်နဲနဲနားလည်ရန်နှင့် crypt () ကို မှန်ကန်စွာနှင့်လုံခြုံစွာမည်သို့အသုံးပြုရမည်ကိုသင်ပေးပါလိမ့်မည်။

1 ။ Crypt () function ၏အခြေခံစည်းမျဉ်းများကိုနားလည်ပါ

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

function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 string crypt(string $string, string $salt)

ဒါဟာနှစ်ခု parameters တွေကိုလက်ခံရရှိ:

  • $ string : စာဝှက်ထားတဲ့ string ကို။

  • $ ဆား - encryption လုပ်စဉ်အတွင်းအသုံးပြုသော "ဆားတန်ဖိုး" သည် hashing ရလဒ်ကိုအကျိုးသက်ရောက်စေသည်။

အကယ်. သင်သည်တူညီသော $ ဆားကို ဖြတ်သန်းပါက $ တူညီသော $ string ကို encrypting သည်သဘာဝကျကျတူညီသောရလဒ်ရရှိလိမ့်မည်။ ဤအရာသည်အဘယ်ကြောင့်သင်မြင်သနည်းဟု encryption ရလဒ်များသည်အမြဲတမ်းအတူတူပင်ဖြစ်သည်။

2 ။ အဘယ်ကြောင့်ရလဒ်သည်အမြဲတမ်းအတူတူပင်ဖြစ်သနည်း

ဘာဖြစ်လို့လဲဆိုတော့သင် Crypt () ဟုခေါ်သည့်အခါသင်သည်သတ်မှတ်ထားသောဆားတန်ဖိုးကို အသုံးပြု. ဒုတိယ parameter $ ဆားကို ဖြတ်သန်းသွားသောကြောင့်ဖြစ်သည်။

PHP ၏ Crypt () သည် မည်သည့် ဆား မပေးဆပ်နိုင်သည့်အတွက်စနစ်ပုံမှန်မဟုတ်သောယန္တရားများကိုအသုံးပြုရန်ကြိုးစားသော်လည်းအချို့သောစနစ်များတွင်ဤယန္တရားသည် "ပုံမှန်အားဖြင့်ဆားကိုပုံမှန်အားဖြင့်အသုံးပြုသည်" ဖြစ်ပေါ်လာသည်။

အောက်ပါဥပမာကိုကြည့်ပါ။

 echo crypt("mypassword", "m6"); // ပုံသေကိုသုံးပါ salt

ငါဒီကုဒ်ကိုငါ run တိုင်းအချိန်ဘယ်လောက်အကြိမ်ဘယ်လောက်ပဲနေပါစေ output ဟာအတူတူပါပဲ။ ဆိုလိုသည်မှာသင်သည်တိုက်ခိုက်သူတစ် ဦး သည်သင်သတ်မှတ်ထားသောဆားကိုအသုံးပြုနေသည်ကိုသိလျှင်သင်၏ system ကိုတိုက်ခိုက်ရန် Hash Table ကိုကြိုတင်တွက်ချက်နိုင်သည်။

3 ။ ရလဒ်များကိုအချိန်တိုင်းကွဲပြားခြားနားအောင်ဘယ်လိုလုပ်ရမလဲ။

** မှန်ကန်သောနည်းလမ်းမှာ - ကျပန်းဆားတန်ဖိုးများကိုသုံးပါ။ ** အသုံးပြုသူအတွက်စကားဝှက် hash ကိုထုတ်လုပ်တိုင်းဒေတာဘေ့စ်တွင်သီးခြားဆားကိုထုတ်လုပ်ပြီးသိမ်းဆည်းထားသည်။ ဤနည်းအားဖြင့်အသုံးပြုသူများနှစ် ဦး ၏စကားဝှက်များသည်အတူတူပင်ဖြစ်ပါက၎င်းတို့၏ hash တန်ဖိုးများကွဲပြားလိမ့်မည်။

PHP PHP 5shash () function ကို အသုံးပြု. phpp 5.5+ မှမိတ်ဆက်ပေးသောနည်းလမ်းဖြစ်သော surfer salt မျိုးဆက်မျိုးထုတ်လုပ်သည့်နည်းလမ်းတစ်ခုကို PHP ကအကြံပြုသည်။

 $password = 'mypassword';
$hash = password_hash($password, PASSWORD_BCRYPT);

ဤလုပ်ဆောင်မှုသည်သင့်အတွက်ထူးခြားသောဆားကိုအလိုအလျောက်ထုတ်လုပ်ပြီးရလဒ်နှင့် ပတ်သက်. ပူးတွဲပါလိမ့်မည်။ တစ်ခုချင်းစီကိုပြေးကွဲပြားခြားနားသောရလဒ်များရလိမ့်မယ်:

 // တစ်ခုချင်းစီကို output ကိုကွဲပြားခြားနားသည်
$hash1 = password_hash('mypassword', PASSWORD_BCRYPT);
$hash2 = password_hash('mypassword', PASSWORD_BCRYPT);

သို့သော်၎င်းတို့ကို Password_verify () မှတဆင့်မူရင်းစကားဝှက်ကိုအတည်ပြုရန်အသုံးပြုဆဲအသုံးပြုနိုင်သည်။

4 ။ Crypt () မသုံးပါကကျွန်ုပ်ဘာလုပ်သင့်သနည်း။

သင် crypt () ကို သုံးရန်လိုပါကကျပန်းဆားကိုကိုယ်တိုင်ထုတ်လုပ်ပါ။ ဒီမှာဥပမာတစ်ခုပါ။

 function generate_salt($length = 22) {
    return substr(strtr(base64_encode(random_bytes($length)), '+', '.'), 0, $length);
}

$password = 'mypassword';
$salt = '$2y$10$' . generate_salt(); // အသုံးပြု Blowfish algorithm
$hash = crypt($password, $salt);

ခေါ်ဆိုမှုတစ်ခုစီသည်မတူညီသောဆားတစ်ခုဖြစ်လိမ့်မည်။

5 ။ သိုလှောင်ခြင်းနှင့်စိစစ်အတည်ပြု

စာဝှက်ထားတဲ့ရလဒ်များကိုနောက်ဆက်တွဲအတည်ပြုချက်အတွက်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသင့်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 // ဘယ်အချိန်မှာသိုလှောင်မှု
$hash = crypt($password, $salt);
// ဒေတာဘေ့စမှသိမ်းဆည်းပါ

// စိစစ်အတည်ပြုစဉ်အတွင်း
if (hash_equals($hash, crypt($inputPassword, $hash))) {
    echo "စကားဝှက်မှန်";
} else {
    echo "စကားဝှက်";
}

သတိပြုရန်မှာ Crypt ၏ဒုတိယ pareter သည်စာဝှက်ထားသည့် hash value သို့တိုက်ရိုက်ဖြတ်သန်းနိုင်ကြောင်းသတိပြုပါ။ PHP သည်ဆားကိုအလိုအလျောက်ထုတ်ယူလိမ့်မည်။

6 ။ အကျဉ်းချုပ်

  • Crypt () () သင်သည်တူညီသောဆားကိုအသုံးပြုသောကြောင့်တူညီသောရလဒ်ကိုပြန်ပို့သည်။

  • လုံခြုံမှုရှိရန်သင်သည်ကျပန်းဆားကိုအသုံးပြုသင့်သည်, သို့မဟုတ် password_hash () ကို တိုက်ရိုက်သုံးသင့်သည်။

  • အထူးလိုအပ်ချက်မရှိပါကပရောဂျက်အသစ်များတွင် crypt () ကို ဆက်လက်အသုံးပြုရန်မလိုအပ်ပါ။

  • သက်တန့်စားပွဲတင်တိုက်ခိုက်မှုကိုတားဆီးရန် Hard-coded ဆားများကိုအမြဲတမ်းရှောင်ကြဉ်ပါ။

အသုံးပြုသူစကားဝှက်ထုတ်လုပ်မှုပါ 0 င်သည့်စနစ်တစ်ခုကိုတီထွင်သည့်အခါလုံခြုံရေးသည်အမြဲတမ်းထိပ်တန်း ဦး စားပေးဖြစ်သည်။ Crypt ၏အပြုအမူ၏အမူအကျင့်ကိုမှန်ကန်စွာနားလည်ခြင်းသည်သင့်ကိုပိုမိုတည်ငြိမ်။ ယုံကြည်စိတ်ချရသော application system တည်ဆောက်ရန်ကူညီလိမ့်မည်။