Password_Needs_Rehash function ကိုလက်ရှိစကားဝှက်၏ hash တန်ဖိုးကို algorithms အသစ်သို့မဟုတ် encryption parameters များကိုအသုံးပြုပြီးအသစ်ပြောင်းရန်လိုအပ်သည်ကိုစစ်ဆေးရန်အသုံးပြုသည်။ ၎င်းသည်လက်ရှိစကားဝှက်၏ Hash ကိုသတ်မှတ်ထားသော encryption parameters များနှင့်နှိုင်းယှဉ်သည် (ဥပမာ algorithms, ကုန်ကျစရိတ်များစသည်) ။ အကယ်. ရှိပြီးသားစကားဝှက် Hash သည်လိုအပ်ချက်အသစ်များကိုမကိုက်ညီပါက၎င်းသည် မှန်ကန် သည် ။
<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">$hashedPassword</span></span><span>, PASSWORD_BCRYPT, [</span><span><span class="hljs-string">'cost'</span></span><span> => </span><span><span class="hljs-number">12</span></span><span>])) {
</span><span><span class="hljs-variable">$newHash</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> => </span><span><span class="hljs-number">12</span></span><span>]);
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ်တွင်စကားဝှက်များကို update လုပ်ပါ</span></span><span>
}
</span></span>ဤဥပမာတွင် password_needs_Rehash သည် ဒေါ်လာ hhashedpassword သည် သတ်မှတ်ထားသော encryption parameters များကို (ဥပမာ ကုန်ကျစရိတ် parametersters) နှင့်ကိုက်ညီမှုရှိမရှိစစ်ဆေးသည်။ အကယ်. ၎င်းနှင့်မကိုက်ညီပါကစကားဝှက်ကိုပြန်လည်ဝှက်ထားရန်လိုအပ်သည်။
Password Hashing algorithms ၏စဉ်ဆက်မပြတ် update နှင့်အဆင့်မြှင့်တင်ခြင်းနှင့်အတူအဟောင်း algorithms နှင့်စာဝှက်ထားသောစကားဝှက်များကလုံခြုံရေးအန္တရာယ်များကိုရင်ဆိုင်ရနိုင်သည်။ ဥပမာအားဖြင့် PHP သည် MD5 နှင့် Sha-1 စသည့် algorithms များကိုအစပိုင်းတွင်အသုံးပြုခဲ့သည်။ မျက်မှောက်ခေတ် encryption algorithms မှ BCRYPT နှင့် argon2 ကဲ့သို့သောစာဝှက်ခြင်းများနှင့်အတူဤ algorithms ကို အသုံးပြု. စာဝှက်ထားသောစကားဝှက်များကို ပို. လုံခြုံသည်။
Password_NEEDS_REHAH function ကိုမိတ်ဆက်ပေးခြင်းသည် developer များကသူတို့ကိုသိမ်းဆည်းသောအခါစကားဝှက်များကိုပြောင်းလွယ်ပြင်လွယ်ပြောင်းလဲစေနိုင်သည်။ ဥပမာအားဖြင့် BCRYPT နှင့် BCROST ကို GCONS2 ဖြင့်အစားထိုးရန်ဆုံးဖြတ်သည့်အခါ Bcrypt ဖြင့်စာဝှက်ထားသောစကားဝှက်ကို Password_needs_Rehash မှတစ်ဆင့်စာဝှက်စနစ်နည်းလမ်းအသစ်သို့ရှာဖွေတွေ့ရှိနိုင်သည်။ ဤနည်းအားဖြင့်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောစကားဝှက်များကိုပင် encryption algorithm အသစ်သို့အလိုအလျောက်ပြောင်းရွှေ့နိုင်သည်။
encryption algorithm ကိုယ်နှိုက်၏လုံခြုံရေးသည် algorithm ကိုယ်နှိုက်ပေါ်တွင်သာမက algorithm ၏ parameter လုပ်ခြင်း ချိန် ညှိချက်များနှင့်လည်းသက်ဆိုင်သည်။ ကုန်ကျစရိတ် parameter သည် hash တွက်ချက်မှု၏အချိန်ရှုပ်ထွေးမှုကိုဆုံးဖြတ်သည်။ အဆင့်မြင့်တန်ဖိုးများသည်ပိုမိုလုံခြုံမှုကိုပေးနိုင်သည်။
Passwords သိုလှောင်ရန်အတွက်သင်ကအစပိုင်းတွင် bcrypt algorithm ကို ကုန်ကျစရိတ် 10 ဖြင့်အသုံးပြုခဲ့သည်ဆိုပါစို့ ။ Password_needs_Rehash ကိုအသုံးပြုပြီးဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောစကားဝှက်အဟောင်းသည် ကုန်ကျစရိတ် သက်သာစွာ အသုံးပြု. လိုအပ်သည့်အတိုင်း၎င်းကိုမွမ်းမံနိုင်သည်ကိုစစ်ဆေးနိုင်သည်။
<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">$hashedPassword</span></span><span>, PASSWORD_BCRYPT, [</span><span><span class="hljs-string">'cost'</span></span><span> => </span><span><span class="hljs-number">14</span></span><span>])) {
</span><span><span class="hljs-variable">$newHash</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> => </span><span><span class="hljs-number">14</span></span><span>]);
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ်တွင်စကားဝှက်များကို update လုပ်ပါ</span></span><span>
}
</span></span>ဤဥပမာတွင်မူလ Hash ၏ ကုန်ကျစရိတ် 14 ထက်နည်းလျှင်ပြန်လည်စာဝှက်ခြင်းလိုအပ်သည်။
password_needs_Rehash သည် hash ကိုအသစ်ပြောင်းရန်လိုအပ်လျှင်ရှာဖွေရန်လွယ်ကူသောနည်းလမ်းတစ်ခုကိုပေးသော်လည်းဤလုပ်ငန်းစဉ်သည်စွမ်းဆောင်ရည်အပေါ်အကျိုးသက်ရောက်နိုင်သေးသည်။ အထူးသဖြင့်အသုံးပြုသောအသုံးပြုသူများသို့မဟုတ်မကြာခဏဒေတာဘေ့စ်ဝင်ရောက်ခွင့်ရှိသည့်အခါတွင်သုံးစွဲသူမှတ်တမ်းများသည်ဆာဗာတွင် 0 န်ထုပ်ဝန်ပိုးကိုတိုးမြှင့်နိုင်သည်။
စွမ်းဆောင်ရည်သက်ရောက်မှုကိုလျှော့ချရန်အတွက်စကားဝှက် login အောင်မြင်သောအခါနောက်ခံတွင်ပြန်လည်ဝှက်ထားသည့်လျှို့ဝှက်နံပါတ်ကိုပြန်လည်နေရာချထားခြင်းအားပြန်လည်နေရာချထားခြင်းအတွက်စကားဝှက်ကိုလုပ်ဆောင်ရန်အကြံပြုသည်။ ဆိုလိုသည်မှာစကားဝှက်ကိုပြန်လည်စာဝှက်ခြင်းကသုံးစွဲသူ၏လက်ငင်းအတွေ့အကြုံကိုမထိခိုက်သော်လည်းနောက်ခံတွင်ဒေတာဘေ့စ်တွင်စကားဝှက် hash ကိုတဖြည်းဖြည်းဖြည့်ဆည်းပေးသည်။
စကားဝှက်၏ hash သည်လက်ရှိလုံခြုံရေးစံချိန်စံညွှန်းများနှင့်ကိုက်ညီမှုရှိမရှိစစ်ဆေးရန် စကားဝှက်_needs_Rehash အသုံးပြုခြင်းသည်စနစ်၏လုံခြုံရေးကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ အသစ်ပြောင်းခြင်းမရှိပါကအောက်ပါအန္တရာယ်များဖြစ်ပေါ်နိုင်သည်။
Old algorithms နှင့်အတူလုံခြုံရေးပြ issues နာများ - MD5 နှင့် Sha1 ကဲ့သို့သောအဟောင်း encryption algorithms သည်မရှိတော့သည့်အဟောင်းနှင့် MD5 နှင့် Sha1 ကဲ့သို့သောအဟောင်းများသည်ဤစကားဝှက်များကိုသက်တံ့ပြားများသို့မဟုတ်အခြားနည်းလမ်းများမှတဆင့်အလွယ်တကူကွဲစေနိုင်သည်။
မလျော်ကန်သော parameter သည် setting : အကယ်. ကုန်ကျစရိတ် အလွန်နည်းပါက Password သည် brute-force တိုက်ခိုက်မှုများကိုအားနည်းစေနိုင်သည်။ တိုက်ခိုက်သူသည် hash ကိုဖြစ်နိုင်ချေရှိသောစကားဝှက်ပေါင်းစပ်မှုများစွာဖြင့်စမ်းသပ်ခြင်းဖြင့် hash ကိုအက်ကွဲသည်။
စကားဝှက် hashes များကိုပုံမှန်ရှာဖွေတွေ့ရှိခြင်းနှင့်အသစ်ပြောင်းခြင်းသည်စကားဝှက်သိုလှောင်မှုသည်လက်ရှိအချိန်တွင်လက်ရှိအကောင်းဆုံးလုံခြုံရေးအလေ့အကျင့်များကိုအမြဲလိုက်နာသည်ကိုသေချာစေသည်။