လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Crypt () ကို CMS တွင် encryption scheme အဖြစ်ပေါင်းစပ်ပါ

Crypt () ကို CMS တွင် encryption scheme အဖြစ်ပေါင်းစပ်ပါ

M66 2025-05-28

အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ်များ (CMS) တွင်အသုံးပြုသူအချက်အလက်များ၏လုံခြုံရေးသည်အထူးသဖြင့်စကားဝှက်များသိုလှောင်ခြင်းများဖြစ်သည်။ PHP နှင့်ပါ 0 င်သည့် Crypt () function သည်ဂန္ထဝင်နှင့်လုံခြုံသောစကားဝှက်စာဝှက်စနစ်ဖြစ်သည်။ ၎င်းကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းသည်စနစ်၏လုံခြုံမှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးသည်လျှို့ဝှက်နံပါတ်သိုလှောင်မှုကိုလုံခြုံရေးနှင့်ပြောင်းလွယ်ပြင်လွယ်စေရန် Crypt () function ကို Crypt () function ကို Crypt () function ကိုအတိမ်အနက်ဖြင့်ရှင်းပြပါမည်။

1 ။ Crypt () function ကိုနားလည်ပါ

Crypt () သည် PHP တွင် built-in encryption function တစ်ခုဖြစ်ပြီး Encryption algorithms (des, blowfish, sha-256, Sha-512 စသည်ဖြင့်) အကောင်အထည်ဖော်သည်။ စကားဝှက် hash သိုလှောင်မှုအတွက်သင့်တော်သော "ဆားတန်ဖိုး" parameter ဖြင့်ဖြတ်သန်းခြင်းအားဖြင့်နောက်ကြောင်းပြန်မလှည့်နိုင်သောစာဝှက်ထားသော string ကိုထုတ်ပေးသည်။

 $hashed_password = crypt($password, $salt);

Salt Value သည်စာဝှက်စနစ်လုံခြုံရေးနှင့်သက်တံ့စားပွဲဝိုင်းတိုက်ခိုက်မှုများကိုတားဆီးရန်အတွက်သော့ချက်ဖြစ်သည်။

2 ။ လက်ျာ encryption algorithm ကိုရွေးချယ်ပါ

Crypt () သည် ပုံစံတွင်အောက်ပါအတိုင်းကွဲပြားသော algorithms ကိုထောက်ပံ့သည်။

  • des (အကြံပြုခြင်းမလိုအပ်ပါ)

  • Blowish (Modern Password Hashing အတွက်အကြံပြု သည် )

  • Sha-256 (အမှတ်အသား $ 5 $ )

  • Sha-512 (အမှတ်အသား $ 6 $ )

ဥပမာအားဖြင့်, blowfish ကိုသုံးပါ။

 $salt = '$2y$12$' . substr(bin2hex(random_bytes(16)), 0, 22);
$hash = crypt($password, $salt);

ဤတွင် ဒေါ်လာ 2Y $ 2Y $ 2Y $ 2Y) သည် algorithm ကိုကိုယ်စားပြုသည်။ 12 သည်ကုန်ကျစရိတ် parameter (ITERATS ၏နံပါတ်များသည်အချိန်ကုန်လေလေဖြစ်သည်), 22 လုံးတွင်ဆား 22 လုံးဖြင့်ရောင်းချသည်။

3 ။ ပေါင်းစည်းခြင်းဥပမာ - အသုံးပြုသူမှတ်ပုံတင်ခြင်းနှင့် login လုပ်ငန်းစဉ်

မှတ်ပုံတင်သည့်အခါစာဝှက်ထားတဲ့စကားဝှက်

 function createPasswordHash($password) {
    // ကျပန်းဆားထုတ်လုပ်ပါ,အသုံးပြု Blowfish algorithm
    $salt = '$2y$12$' . substr(strtr(base64_encode(random_bytes(16)), '+', '.'), 0, 22);
    // hash generate
    return crypt($password, $salt);
}

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

logging လုပ်တဲ့အခါစကားဝှက်ကိုစစ်ဆေးပါ

 function verifyPassword($password, $hashedPassword) {
    // အသုံးပြု stored hash အဆိုပါ cryptographic အတွက်ဆားနှိုင်းယှဉ်
    return crypt($password, $hashedPassword) === $hashedPassword;
}

log in လုပ်သည့်အခါဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသော hash password ကိုယူပါ။ Input password ကိုထပ်မံစာဝှက်ရန်နှင့်နှိုင်းယှဉ်ရန်၎င်း၏ဆားကိုသုံးပါ။

4 ။ ဒေတာဘေ့စ်လယ်ကွင်းဒီဇိုင်း

Password Fields သည် String အမျိုးအစားများဖြစ်ရန်အကြံပြုထားပြီးအနည်းဆုံးစာလုံးရေ 60 အရှည်ကို Blowfish မှရရှိသော hash ကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်အကြံပြုသည်။

 CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    password_hash CHAR(60) NOT NULL,
    ...
);

5 ။ ကြိုတင်ကာကွယ်မှုများနှင့်လုံခြုံရေးအကြံပြုချက်များ

  • ဆားကိုစိတ်ကြိုက်မထားပါနှင့်Crypt () မှ ထုတ်လုပ်သောဆားပုံစံကိုသုံးပါသို့မဟုတ်စစ်ဆင်ရေးများကိုရိုးရှင်းစေရန် password_hash (php 5.5+) function ကိုသုံးပါ။

  • Password Update : စကားဝှက်အဟောင်းများအတွက်အားနည်းသော algorithms ကိုအသုံးပြုသူများကိုစဉ်းစားကြည့်ပါ။

  • စကားဝှက်အစွမ်း - အားနည်းသောစကားဝှက်များကိုရှောင်ရှားရန်ရှေ့တန်းနှင့်နောက်ကျောအပြင်းအထန်စကားဝှက်ကိုပေါင်းစပ်ခြင်း။

  • Plaintext သိုလှောင်မှုကိုရှောင်ပါ ။ Plaintext Passwords သို့မဟုတ်ပြောင်းပြန်စာဝှက်ထားသောစကားဝှက်များကိုဘယ်တော့မှမသိမ်းဆည်းပါနှင့်။

6 ။ ခေတ်သစ် PHP PhilP Password Hashing API ကိုပေါင်းစပ်ခြင်း

PHP 5.5, Password_hash () နှင့် password_verify () မှစတင်. Simpler နှင့် Safer Password Management interfaces များနှင့်စတင်နိုင်ပြီးနောက်ခံအလွှာသည် crypt () အပေါ်အခြေခံသည်။ စီမံကိန်းအသစ်များကိုပထမ ဦး ဆုံးအသုံးပြုရန်အကြံပြုသည်။

 $hash = password_hash($password, PASSWORD_BCRYPT);
$isValid = password_verify($password, $hash);

သင်၏ CMS ဗားရှင်းသည်အဟောင်းနှင့်သင် crypt () ကို ကိုယ်တိုင်အသုံးပြုရန်လိုပါကအထက်ပါနည်းလမ်းမှာလုံခြုံစိတ်ချရသောဖြေရှင်းနည်းတစ်ခုဖြစ်သည်။