⊗ppPmAuHFP 426 of 447 menu

password_hash လုပ်ဆောင်ချက်

တကယ်တော့ md5 လုပ်ဆောင်ချက်နှင့် ၎င်းကို အသုံးပြု၍ စကားဝှက်ကို ဆားထည့်ခြင်းသည် ခေတ်နောက်ကျသွားပြီဟု ယူဆပါသည်။ နောက်ထပ်သင်ယူမှုအတွက် သင်နားလည်စေရန်နှင့် အခြားသူများ၏ ပရောဂျက်များတွင် သင်တွေ့ရှိနိုင်သောကြောင့် ၎င်းကို ကျွန်ုပ်တို့လေ့လာခဲ့ကြသည်။

ဆားထည့်ထားသော စကားဝှက်ကို ရရှိရန် ပိုမိုကောင်းမွန်သော နည်းလမ်းရှိပါသည်။ ၎င်းအတွက် password_hash လုပ်ဆောင်ချက်ကို အသုံးပြုပါသည်။ ၎င်း၏ ပထမပါရာမီတာအနေဖြင့် စတင်း၏၊ ဒုတိယပါရာမီတာအနေဖြင့် (နောက်မှဖော်ပြမည်) စာဝှက်ဖော်ခြင်းအယ်ဂိုရီသမ်ကို လက်ခံပြီး၊ ထိုစတင်းနှင့် ဆားကို အတူတကွ ပြန်ပေးသည်။

ဤကုဒ်ကို အကြိမ်ကြိမ်လည်ပတ်ကြည့်ပါ။

<?php echo password_hash('12345', PASSWORD_DEFAULT); ?>

သင်သည် အကြိမ်တိုင်း ရလဒ်အမျိုးမျိုးကို ရရှိပြီး ထိုရလဒ်၏ ပထမအပိုင်းသည် ဆားဖြစ်ကာ၊ ဒုတိယအပိုင်းသည် ဆားထည့်ထားသော စကားဝှက်ဖြစ်ပါသည်။

ကျွန်ုပ်တို့၌ password_hash လုပ်ဆောင်ချက်မှ ရရှိသော ဟက်ရှ်နှင့် စကားဝှက်တစ်ခုခု ရှိသည်ဆိုပါစို့။ ၎င်းဟက်ရှ်သည် ထိုစကားဝှက်၏ ဟက်ရှ်ဟုတ်မဟုတ် စစ်ဆေးရန် password_verify လုပ်ဆောင်ချက်ကို အသုံးပြုရပါမည်။ ၎င်းသည် ပထမပါရာမီတာအနေဖြင့် စကားဝှက်ကို လက်ခံပြီး၊ ဒုတိယပါရာမီတာအနေဖြင့် ဟက်ရှ်ကို လက်ခံကာ true သို့မဟုတ် false ကို ပြန်ပေးပါသည်။

ဥပမာတစ်ခုဖြင့် ကြည့်ကြရအောင်။

<?php $password = '12345'; // စကားဝှက် $hash = '$2y$10$xoYFX1mFPxBSyxaRe3iIRutxkIWhxGShzEhjYUVd3qpCUKfJE1k7a'; // ဟက်ရှ် if (password_verify($password, $hash)) { // ဤစကားဝှက်၏ ဟက်ရှ် } else { // ဤစကားဝှက်မှ မဟုတ်သော ဟက်ရှ် } ?>

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

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

ယခု မှတ်ပုံတင်ခြင်း ကုဒ်ကို ပြင်ဆင်ကြရအောင်။ လက်ရှိတွင် ရှိနေသည်မှာ ဤအတိုင်းဖြစ်သည်။

<?php function generateSalt() { $salt = ''; $saltLength = 8; // ဆား၏ အရှည် for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // ASCII-table မှ စာလုံး } return $salt; } $salt = generateSalt(); // ဆား $password = md5($salt . $_POST['password']); // စကားဝှက်ကို ဆားထည့်ထားသော ဟက်ရှ်အဖြစ် ပြောင်းလဲပါ ?>

password_hash ကို အသုံးပြု၍ ကျွန်ုပ်တို့သည် ဤအတိုင်း အတိုချုံးနိုင်သည်။

<?php $password = password_hash($_POST['password'], PASSWORD_DEFAULT); ?>

အလားတူပင် အတည်ပြုခြင်း ကုဒ်ကို ပြင်ဆင်ပါမည်။

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; // လော့ဂ်အင်အမည်ဖြင့် ယူဇာကို ရယူပါ $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; // ဒေတာဘေ့စ်မှ ဆားထည့်ထားသော စကားဝှက် // ဒေတာဘေ့စ်မှ ဟက်ရှ်နှင့် ရိုက်ထည့်ထားသော စကားဝှက် ကိုက်ညီမှုကို စစ်ဆေးပါ if (password_verify($_POST['password'], $hash)) { // အားလုံးအဆင်ပြေ၊ အတည်ပြု... } else { // စကားဝှက် မကိုက်ညီ၊ မက်ဆေ့ဂျ်ပြပါ } } else { // ထိုလော့ဂ်အင်အမည်ဖြင့် ယူဇာမရှိ၊ မက်ဆေ့ဂျ်ပြပါ } ?>

သင်၏ အတည်ပြုခြင်းနှင့် မှတ်ပုံတင်ခြင်းကို လေ့လာထားသော အသစ်များဖြစ်သည့် လုပ်ဆောင်ချက်များသို့ ပြောင်းလဲပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်