Password_NEDS_REHASH function သည်လက်ရှိသိုလှောင်ထားသောစကားဝှက် hash, algorithm, ကုန်ကျစရိတ်နှင့်အခြားရွေးချယ်စရာများအပေါ် အခြေခံ. လက်ရှိသိုလှောင်ထားသည့်စကားဝှက် hash ကို update လုပ်ရန်လိုအပ်သည်ကိုဆုံးဖြတ်လိမ့်မည်။ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<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 : check လုပ်ထားရန်လိုအပ်သည့်စကားဝှက် hash ။
$ algo : password_default သို့မဟုတ် password_bcrypt ကဲ့သို့ဆေးထည့်သော algorithm ကိုအသုံးပြုခဲ့သည်။
$ ရွေးစရာများ - များသောအားဖြင့်ဆေးကြောခြင်း၏ကုန်ကျစရိတ်များပါ 0 င်သော configuration options များ။
ဤလုပ်ဆောင်မှု၏လုပ်ဆောင်ချက်သည်လက်ရှိစကားဝှက်၏ Hash သည်လက်ရှိပြင်ဆင်မှုလိုအပ်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိစစ်ဆေးရန်ဖြစ်သည်။ အကယ်. ၎င်းသည် မကိုက်ညီ ပါက၎င်းသည် hash ကို update လုပ်ရန်လိုအပ်ကြောင်းညွှန်ပြသည်။
Password_Default သည် PHP တွင် default hashing algorithm ဖြစ်သည်။ ၎င်းသည် bcrypt ကို အသုံးပြုလေ့ရှိပြီးအနာဂတ်တွင် algorithm တိုးတက်မှုနှင့်အတူအနာဂတ်တွင်အစားထိုးနိုင်သည်။ အကယ်. PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ခြင်းသို့မဟုတ်လုံခြုံရေးစာကြည့်တိုက်အပြောင်းအလဲများကိုအဆင့်မြှင့်တင်ပါက Password_Default သည် algorithm အသစ်ကိုသုံးနိုင်သည်။
ဥပမာအားဖြင့် PHP 5.6 တွင် suppose ဆိုပါစို့။ စကားဝှက် hash ကိုထုတ်လုပ်ရန် password_default ကို သင်အသုံးပြုသည်။ PHP ကို 7.x သို့အဆင့်မြှင့်တင်သောအခါ Password_Default သည် မတူညီသော algorithm တစ်ခုဖြစ်လာနိုင်သည် (BCRYPT မှ BCRYPT မှ argon2 သို့ ပြောင်းလဲခြင်း) ဖြစ်လာနိုင်သည်။ စကားဝှက် hash ကိုစစ်ဆေးရန် Password_NEDS_REHASH ကို အသုံးပြုပါကအောက်ပါဖြစ်နိုင်သည်။
သိုလှောင်ထားသောစကားဝှက်သည် Hashing algorithm ကိုအသုံးပြုသည်။
စနစ်သည်ဆေးထည့်ရန် algorithm အသစ် (ဥပမာ အာဂျင်တီးယန်း ကဲ့သို့သော algorithm အသစ်တစ်ခုလိုအပ်သည်။
ဤအရာကိုရှောင်ရှားရန်အထူးသဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင် လျှို့ဝှက်နံပါတ် on on ondefault ကိုမှီခိုမည့်အစား algorithm ကိုအတိအလင်းဖော်ပြရန်အကောင်းဆုံးဖြစ်သည်။ PHP သည်အနာဂတ်တွင် algorithm အသစ်တစ်ခုသို့ပြောင်းလျှင်ပင်စီမံကိန်း၏လိုအပ်ချက်များနှင့်ကိုက်ညီသောရှင်းလင်းစွာဆေးထည့်သော algorithm ကိုအသုံးပြုနေသည်။
<span><span><span class="hljs-variable">$hash</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>
Password_NEDS_REHASH သည် စကားဝှက် hash (ဥပမာ, bcrypt ၏ကုန်ကျစရိတ်) ၏ကုန်ကျစရိတ်အချက်ကိုစစ်ဆေးသည်။ အကယ်. သင်၏ system configuration တွင်ရှိသောကုန်ကျစရိတ်အချက်ကိုသင်ပြောင်းလဲလျှင် (ဥပမာအားဖြင့် 10 မှ 12 အထိ) နှင့်စကားဝှက်အဟောင်းသည်ကုန်ကျစရိတ်သက်သာသည့်အချက်ဟောင်းကိုအသုံးပြုနေဆဲ, password_needs_Rehash သည် hash ကိုမွမ်းမံရန်လိုအပ်သည်ကိုမှန်ကန်စွာမစစ်ဆေးနိုင်ပါ။
စကားဝှက် hash ထုတ်ပေးသည့်အခါတိုင်းလက်ရှိကုန်ကျစရိတ်အကြောင်းအရင်းကိုအမြဲတမ်းအသုံးပြုကြောင်းသေချာပါစေ။ Password Hashing Updates ကိုစွန့်ပစ်ခြင်းကိုရှောင်ရှားရန်သင်အသုံးပြုသူမှတ်တမ်းများအချိန်တိုင်းတွင်စကားဝှက် hash ကိုစစ်ဆေး။ မွမ်းမံနိုင်သည်။
<span><span><span class="hljs-variable">$options</span></span><span> = [</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">// မှန်ကန်သောကုန်ကျစရိတ်ကိုသုံးပါ</span></span><span>
</span><span><span class="hljs-variable">$hash</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-variable">$options</span></span><span>);
</span></span>
Password_NEDS_REHAH သည် parametersk သုံးခုလိုအပ်သည်။ Hash Value, algorithm နှင့် configuration options များ။ အကယ်. ဤသတ်မှတ်ချက်များကိုမှားယွင်းစွာဖြတ်သန်းသွားပါက function သည်ကောင်းမွန်စွာအလုပ်လုပ်နိုင်မည်မဟုတ်ပါ။ ဘုံမေးခွန်းများတွင်:
$ options array ကိုမှန်ကန်စွာမဖြတ်နိုင်ပါ, ကုန်ကျစရိတ်အချက်များသို့မဟုတ်အခြား configuration parameters များကိုဆုံးရှုံးခြင်းကိုရရှိခဲ့သည်။
Passed Hash သည် hash ထုတ်ရန်အသုံးပြုသော algorithm နှင့်မကိုက်ညီပါ။
Password_needs_Rehash ဟုခေါ်ဆိုသည့်အခါမှန်ကန်သော parameters များကိုသင်သေချာအောင်လုပ်ပါ။ ဒီမှာဥပမာတစ်ခုပါ။
<span><span><span class="hljs-variable">$hash</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-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">$hash</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">$hash</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>
$ hash သည် ရွေးချယ်ထားသော algorithm နှင့် configuration options များနှင့်ကိုက်ညီမှုရှိစေရန်သေချာပါစေ။
စကားဝှက်ခန်းလျှောခန်းလျှောသွင်းခြင်း algorithms နှင့် configurations များကိုအချိန်ကြာလာသည်နှင့်အမျှပိုမိုအားကောင်းလာသော်လည်းအချိန်အတောအတွင်းလည်းခေတ်နောက်ကျနိုင်သည်။ ထို့ကြောင့် password_needs_Rehash ကို အသုံးပြု. စကားဝှက် hash ကို update လုပ်ရန်လိုအပ်သည်ကိုဆုံးဖြတ်ရန်အတွက် Hash ပုံမှန်ကိုပြန်လည်သတ်မှတ်ရန်လုံခြုံရေးအလေ့အကျင့်လည်းဖြစ်သည်။ အသုံးပြုသူမှတ်တမ်းများအတွက်အချိန်တိုင်း hash ကို update လုပ်ရန်လိုအပ် / မ်ားကိုစစ်ဆေးရန်လိုအပ်သည်ကိုသင်စစ်ဆေးနိုင်သည်။
တစ်ခါတစ်ရံတွင်သင်သည်မတူညီသော PHP ဗားရှင်းများသို့မဟုတ် configurations များနှင့်သဟဇာတဖြစ်ရန်လိုအပ်နိုင်သည်။ ဤကိစ္စတွင် Password_needs_Rehash ၏အပြုအမူသည်ကွဲပြားသောဗားရှင်းများအကြားကွဲပြားခြားနားမှုများကြောင့်ထိခိုက်နိုင်သည်။ ထို့ကြောင့်သင်၏ system သည်သင်အသုံးပြုနေသော PHP ဗားရှင်းနှင့်သဟဇာတဖြစ်အောင်လုပ်ပြီးလိုအပ်သည့်အတိုင်း၎င်းကိုညှိပါ။
Password_Needs_Rehash သည် Password Hash သည်လက်ရှိ configuration လိုအပ်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိကိုရှာဖွေရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုစဉ်အတွင်းကျွန်ုပ်တို့သည်အချို့သော configuration ပြ problems နာအချို့ကိုကြုံတွေ့ရနိုင်သည်။ Configuration ပြ problems နာများတွင် algorithm ပြောင်းလဲမှုများတွင် algorithm ပြောင်းလဲမှုများ, ဤပြ problems နာများကိုဖြေရှင်းရန်အဖြေမှာ Hashing algorithm နှင့် CAPT အချက်ကိုအတိအလင်းဖော်ပြရန်မှာစကားဝှက်ကိုအသစ်ပြောင်းတိုင်းလက်ရှိပြင်ဆင်မှုကို အသုံးပြု. စကားဝှက်လုံခြုံရေးဆိုင်ရာမူဝါဒများကိုပုံမှန်ပြန်လည်သုံးသပ်ရန်သေချာစေပါ။
ဤပြ problems နာများကိုနားလည်ခြင်းနှင့်သူတို့၏ဖြေရှင်းနည်းများကိုနားလည်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အသုံးပြုသူများ၏စကားဝှက်များ၏လုံခြုံရေးကိုပိုမိုကောင်းမွန်စေပြီးလုံခြုံရေးအန္တရာယ်များကိုရှောင်ရှားနိုင်သည်။