လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> password_needs_Rehash function မှတဆင့်တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမူဝါဒကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

password_needs_Rehash function မှတဆင့်တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမူဝါဒကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

gitbox 2025-07-26

password_needs_Rehash function မှတဆင့်တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမူဝါဒကိုဘယ်လိုအကောင်အထည်ဖော်မလဲ။

ယနေ့ခေတ်ကွန်ယက်ပတ် 0 န်းကျင်တွင် Password Security သည်အသုံးပြုသူသီးသန့်တည်ရှိမှုကိုကာကွယ်ရန်နှင့်ဒေတာချိုးဖောက်မှုများကိုကာကွယ်ရန်အဓိကအားဖြင့်ဖြစ်သည်။ ကွန်ပျူတာဟာ့ဒ်ဝဲစွမ်းဆောင်ရည်ကိုစဉ်ဆက်မပြတ်တိုးတက်လာခြင်းဖြင့်စကားဝှက်စာဝှက်ခြင်း algorithms ဟောင်းသည်သူတို့၏အားနည်းချက်ကိုတဖြည်းဖြည်းဖော်ထုတ်နိုင်သဖြင့်စကားဝှက်များ၏လုံခြုံရေးကိုစဉ်ဆက်မပြတ်မြှင့်တင်ရန်လိုအပ်သည်။ PHP PHPP သည် Password_Hash နှင့် Password_Needs_Rehash ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည်တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမဟာဗျူဟာကိုအကောင်အထည်ဖော်ရန် Password_needs_Rehash function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။

1 ။ စကားဝှက်စာဝှက်ခြင်း၏အရေးပါမှု

ပထမ ဦး စွာစကားဝှက်စာဝှက်စနစ်၏အခြေခံကိုနားလည်ရန်အလွန်အရေးကြီးသည်။ ရိုးရာစကားဝှက်ကိုသိုလှောင်ရေးနည်းသည် brute force cracking, အဘိဓာန်များကိုဖြတ်တောက်ခြင်းဖြင့်အလွယ်တကူရရှိနိုင်သည့်ဒေတာဘေ့စ်တွင်စကားဝှက်ကိုတိုက်ရိုက်သိမ်းဆည်းသည်။

PHP တွင် PHOW_HASH () သည်စကားဝှက်များကိုစာဝှက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်ကျပန်းဆားတန်ဖိုးကိုထုတ်ပေးပြီး BCRYP ကဲ့သို့သောအစွမ်းထက်သော hashing algorithms ကို အသုံးပြု. စကားဝှက်ကို encrypt လုပ်သည်။ ဤအချက်မှာကျွန်ုပ်တို့သည်စကားဝှက်ကိုစာဝှက်ရုံသာမကစကားဝှက်ကိုတူညီသော hashes ကွဲပြားခြားနားသော hashes ထုတ်ပေးလိမ့်မည်ဟုလည်းသေချာစေသည်။

 <span><span><span class="hljs-variable">$hashedPassword</span></span><span> = </span><span><span class="hljs-title function_ invoke__">password_hash</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, PASSWORD_BCRYPT);
</span></span>

2 ။ စကားဝှက်စာဝှက်ခြင်း algorithm ၏ဆင့်ကဲဖြစ်စဉ်

စကားဝှက်စာဝှက်စနစ် algorithms သည်အင်အားကြီးမားသောကွန်ပျူတာစွမ်းအားကိုလိုက်လျောညီထွေဖြစ်အောင်အချိန်ကြာလာသည်နှင့်အမျှ ဆက်. တိုးတက်ပြောင်းလဲလာသည်။ ဥပမာအားဖြင့်, အစောဆုံး MD5 နှင့် Sha-1 encryittion algorithms သည်လုံခြုံမှုမရှိတော့ပါ။ BCRITPL algorithm သည် Hardware ၏ကွန်ပျူတာအာဏာကို အခြေခံ. တွက်ချက်မှုအခက်အခဲကိုညှိနှိုင်းနိုင်သည့်ကုန်ကျစရိတ်အချက်ကိုမိတ်ဆက်ပေးသည်။ မကြာသေးမီနှစ်များအတွင်း argon2 သည်ပိုမိုကောင်းမွန်သော cryptographic encryitt algorithm တစ်ခုဖြစ်လာသည်။

algorithms တိုးတက်ပြောင်းလဲလာသည်နှင့်အမျှ developer များသည် System Security ကိုတိုးတက်စေရန် cryptographic စာဝှက်စနစ်အသစ်များနှင့်ပြောင်းလွယ်ပြင်လွယ်ရှိရန်လိုအပ်သည်။

3 ။ password_needs_Rehash function ကိုမိတ်ဆက်

Password_NEDS_REHAH () function သည် PHP ရှိ function တစ်ခုဖြစ်ပြီးရှိပြီးသား Hash ကိုပြန်လည်ထူထောင်ရန်လိုအပ်ခြင်းရှိမရှိစစ်ဆေးသည်။ ဤလုပ်ဆောင်ချက်သည်လက်ရှိစကားဝှက်ကိုဆေးထည့်ခြင်းနှင့်သတ်မှတ်ထားသောလုံခြုံရေး parameters များ (ဥပမာကုန်ကျစရိတ်) ၏ algorithm settings ပေါ်တွင် မူတည်. စကားဝှက်ကိုပြန်လည်ပြုပြင်ရန်လိုအပ် / မသင့်ကိုဆုံးဖြတ်ရန်လိုအပ်သည်။ ဤနည်းအားဖြင့် algorithm သို့မဟုတ် parameters တွေကိုမွမ်းမံသည့်အခါ developer များကသုံးစွဲသူများအားလုံးကို၎င်းတို့၏စကားဝှက်များကိုချက်ချင်းပြောင်းလဲရန်အတင်းအကျပ်မပြုဘဲသူတို့၏စကားဝှက်များ၏လုံခြုံရေးကိုတဖြည်းဖြည်းတိုးတက်စေနိုင်သည်။

ဤလုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">password_needs_rehash</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$hash</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$algo</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$options</span></span><span>)
</span></span>
  • $ hash : သိုလှောင်ထားသောစကားဝှက် hash ။

  • $ algo : password_bcrypt သို့မဟုတ် password_gargon2i အဖြစ်အသုံးပြုရန် Hashing algorithm ကိုဆေးထည့်ပါ။

  • $ ရွေးစရာများ - encryption algorithms (ဥပမာကုန်ကျစရိတ်များစသဖြင့်) encryption algorithms ကိုချိန်ညှိရန်အသုံးပြုသောရွေးချယ်စရာများ။

Password_NEDS_REHAH () သည် စစ်မှန်သောသို့မဟုတ် မှားယွင်းသော () မှန်ကန်သော သို့မဟုတ်မှားယွင်းသောပြန်လာ, အကယ်. မှန်ကန်သော ပြန်လည်ရောက်ရှိပါက၎င်းသည်လက်ရှိစကားဝှက် Hash သည်လက်ရှိလုံခြုံရေးလိုအပ်ချက်များနှင့်မကိုက်ညီကြောင်းနှင့်ပြန်လည်ထူထောင်ရန်လိုအပ်သည်ဟုဆိုလိုသည်။

4 ။ တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မူဝါဒ

တိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမဟာဗျူဟာသည် password_needs_Rehash () function မှတဆင့် passwordure_needs_Rehash () function ကိုတဖြည်းဖြည်းတိုးတက်စေရန်ဖြစ်သည်။ ဤနည်းဗျူဟာကိုအကောင်အထည်ဖော်ရန်အဓိကခြေလှမ်းများကိုဤတွင်ဖော်ပြထားသည်။

အဆင့် 1 - လက်ရှိစကားဝှက် hash ခေတ်မမီပါကစစ်ဆေးပါ

အသုံးပြုသူမှတ်တမ်းများအချိုးအစားတိုင်းသည်လက်ရှိစကားဝှက်၏ hash ကို password_needs_Rehash () မှတစ်ဆင့် update လုပ်ရန်လိုအပ်သည်ကိုသင်စစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့်, BCROLT မှ argon2 မှစနစ်ကိုအဆင့်မြှင့်တင်ခြင်းသို့မဟုတ် BCRYPT ၏ကုန်ကျစရိတ်ကိုတိုးမြှင့်ဖို့လိုသည်ဆိုပါစို့။

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">password_needs_rehash</span></span><span>(</span><span><span class="hljs-variable">$userPasswordHash</span></span><span>, PASSWORD_BCRYPT, [</span><span><span class="hljs-string">'cost'</span></span><span> =&gt; </span><span><span class="hljs-number">12</span></span><span>])) {
    </span><span><span class="hljs-comment">// စကားဝှက် Hash ကိုပြန်လည်ထူထောင်ရန်လိုအပ်သည်</span></span><span>
    </span><span><span class="hljs-variable">$newHashedPassword</span></span><span> = </span><span><span class="hljs-title function_ invoke__">password_hash</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, PASSWORD_BCRYPT, [</span><span><span class="hljs-string">'cost'</span></span><span> =&gt; </span><span><span class="hljs-number">12</span></span><span>]);
    </span><span><span class="hljs-comment">// ဒေတာဘေ့စ်တွင်စကားဝှက် hash ကို update လုပ်ပါ</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">updateUserPasswordHash</span></span><span>(</span><span><span class="hljs-variable">$userId</span></span><span>, </span><span><span class="hljs-variable">$newHashedPassword</span></span><span>);
}
</span></span>

အဆင့် 2 - ရှိပြီးသားအသုံးပြုသူများ၏စကားဝှက်ကိုတဖြည်းဖြည်းချင်းပြောင်းပါ

Password_NEDS_REHAH () ပထမ ဦး ဆုံးကွပ်မျက်ပြီးနောက်, အသုံးပြုသူအားလုံးကိုချက်ချင်းပြောင်းလဲရန်မလိုအပ်ဘဲပေးရန်လိုအပ်သည့်အသုံးပြုသူစကားဝှက်ကိုသင်သာမွမ်းမံနိုင်သည်။ ဤနည်းအားဖြင့်အသုံးပြုသူသည်စကားဝှက်ကိုတက်ကြွစွာမပြုပြင်မွမ်းမံခြင်းမပြုပါကပင်စနစ်သည်လုံခြုံစိတ်ချရသော encryption algorithm သို့တဖြည်းဖြည်းပြောင်းရွှေ့နိုင်သည်။

အဆင့် 3: ဘေးကင်းရေး parameters တွေကိုတိုးတက်အောင်လုပ်ပါ

စနစ်၏တဖြည်းဖြည်းအဆင့်မြှင့်ခြင်းဖြင့် encryption algorithm ၏ကုန်ကျစရိတ်၏ကုန်ကျစရိတ်ကိုဟာ့ဒ်ဝဲ၏စွမ်းဆောင်ရည်နှင့်လုံခြုံရေးလိုအပ်ချက်များနှင့်တဖြည်းဖြည်းတိုးမြှင့်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်ကုန်ကျစရိတ်အချက်အလက် 10 မှ 12 မှ 12 အထိသို့မဟုတ် BCRYPT မှ argry2 မှအဆင့်မြှင့်တင်နိုင်သည်။

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">password_needs_rehash</span></span><span>(</span><span><span class="hljs-variable">$userPasswordHash</span></span><span>, PASSWORD_ARGON2I, [</span><span><span class="hljs-string">'memory_cost'</span></span><span> =&gt; </span><span><span class="hljs-number">1024</span></span><span>, </span><span><span class="hljs-string">'time_cost'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'threads'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>])) {
    </span><span><span class="hljs-variable">$newHashedPassword</span></span><span> = </span><span><span class="hljs-title function_ invoke__">password_hash</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, PASSWORD_ARGON2I, [</span><span><span class="hljs-string">'memory_cost'</span></span><span> =&gt; </span><span><span class="hljs-number">1024</span></span><span>, </span><span><span class="hljs-string">'time_cost'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'threads'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>]);
    </span><span><span class="hljs-title function_ invoke__">updateUserPasswordHash</span></span><span>(</span><span><span class="hljs-variable">$userId</span></span><span>, </span><span><span class="hljs-variable">$newHashedPassword</span></span><span>);
}
</span></span>

အဆင့် 4: စကားဝှက်လုံခြုံရေးကိုစောင့်ကြည့်ပါ

ပုံမှန် encryption algorithms နှင့်လုံခြုံရေးအကြံပြုချက်များသို့မွမ်းမံမှုများအတွက်ပုံမှန်စစ်ဆေးပါ။ PHP သည်ပိုမိုလုံခြုံစိတ်ချရသော hashing algorithm သို့မဟုတ် parameter ကိုအသစ်ပြောင်းပါက encryption ပေါ်လစီအသစ်ကိုချက်ချင်းအကောင်အထည်ဖော်ရန်စဉ်းစားပါ။ ပုံမှန်စကားဝှက်လုံခြုံရေးပြန်လည်သုံးသပ်မှုများဖြင့်စနစ်သည်အကောင်းဆုံးလုံခြုံရေးအတွက်အမြဲတမ်းရှိကြောင်းသေချာစေနိုင်သည်။

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

Password_needs_Rehash () function ကိုမှတစ်ဆင့် developer များကတိုးတက်သောစကားဝှက်လုံခြုံရေးတိုးမြှင့်မှုမူဝါဒကိုအကောင်အထည်ဖော်နိုင်သဖြင့်သုံးစွဲသူများအားစိတ်အနှောင့်အယှက်ဖြစ်စေသည့်အတွက်စကားဝှက်လုံခြုံရေးကိုတဖြည်းဖြည်းချင်းတိုးတက်စေနိုင်သည်။ ၎င်းသည်စကားဝှက်၏အားသာချက်ကိုတိုးပွားစေရုံသာမကစကားဝှက်အဟောင်းသည်လုံခြုံရေးစံနှုန်းများကိုလုံခြုံရေးစံနှုန်းများအသစ်များဖြင့်ထိန်းသိမ်းထားနိုင်ကြောင်းသေချာစေသည်။ ကွန်ပျူတာနည်းပညာတိုးတက်လာခြင်းဖြင့် password လုံခြုံရေးဆိုင်ရာမူဝါဒများကိုစဉ်ဆက်မပြတ်တိုးတက်စေရန်အတွက်စဉ်ဆက်မပြတ် password လုံခြုံရေးမူဝါဒများလိုအပ်ပြီးတိုးတက်သောမဟာဗျူဟာကိုကျင့်သုံးခြင်းကလုံခြုံရေးနှင့်အသုံးပြုသူအတွေ့အကြုံကိုထိရောက်စွာထိန်းညှိနိုင်သည်။