string hash_pbkdf2 (
string $algo,
string $password,
string $salt,
int $iterations,
int $length = 0,
bool $raw_output = false
)
$ Algo : SHA256 , Sha1 စသည့်အမြင့်ဆုံး algorithm ကိုသတ်မှတ်သည်။ PHP မှထောက်ပံ့ပေးသော algorithm ဖြစ်ရမည်။
$ စကားဝှက် - မူရင်းစကားဝှက်သို့မဟုတ်သော့။
$ ဆား - တူညီတဲ့စကားဝှက်ကို hash မျိုးထုတ်လုပ်ခြင်းမှတူညီသောစကားဝှက်ကိုကာကွယ်ရန်ကျပန်းဆားတန်ဖိုး။
$ Itherations : လုံခြုံရေးပိုများလေလေ, စွမ်းဆောင်ရည်ပိုမိုမြင့်မားလေလေ။
$ အရှည် - output key အရှည်, ပုံမှန် 0 သည်ပုံမှန် 0 သည် output hash algorithm ၏ default အရှည်ကိုကိုယ်စားပြုသည်။
$ Raw_output : Binary format ကို output လုပ် မ ထား,
hash_pbkdf2('sha999', 'password', 'salt', 1000);
အမှားအယွင်း - Sha999 သည်မှန်ကန်သော algorithm မဟုတ်ပါ, ခေါ်ဆိုမှုသည်ပျက်ကွက်လိမ့်မည်သို့မဟုတ်သတိပေးချက်ချမှတ်လိမ့်မည်။
ဖြေရှင်းချက် - Support Algorithms စာရင်းကိုရယူရန် Hash_algos () ကိုခေါ်ပါ။
hash_pbkdf2('sha256', 'password', 'salt', 0);
အမှားအယွင်း - ကြားခံအရေအတွက်သည်အပြုသဘောဆောင်သောကိန်းဖြစ်ရမည်, 0 သို့မဟုတ်အနှုတ်လက်ခဏာနံပါတ်များသည်အလွန်အမင်းနိမ့်ကျစေနိုင်သည်။
ဖြေရှင်းချက် - ITERATS အရေအတွက်ကိုအနည်းဆုံး 1000 သတ်မှတ်သင့်ပြီး application security လိုအပ်ချက်များအရတိကျသောတန်ဖိုးကိုချိန်ညှိသင့်သည်။
hash_pbkdf2('sha256', 'password', 'salt', 1000, 99999);
အမှားအယွင်းတစ်ခု - အလွန်အမင်းအရှည်တောင်းဆိုမှုသည်အချည်းနှီးသောကြိုးသို့မဟုတ်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုဖြစ်ပေါ်စေနိုင်သည်။
ဖြေရှင်းချက် - ယေဘုယျ output ကိုအရှည်သည် hash algorithm ၏အများဆုံး output output ကိုအရှည်မကျော်ရန်အကြံပြုသည်။ အများအားဖြင့် Sha256 ၏ရလဒ်အရှည်သည် 32 bytes ဖြစ်ပြီး $ အရှည်ကို ချိန်ညှိသောအခါကျိုးကြောင်းဆီလျော်သင့်သည်။
hash_pbkdf2('sha256', 'password', 'salt', 1000, 64, 'true');
အမှားအယွင်းတစ်ခု - $ Raw_output သည် boolean value ဖြစ်သင့်သည်။ string တစ်ခုတွင်ဖြတ်သန်းခြင်းသည် string တစ်ခုတွင်ရိုက်ကူးရန်သို့မဟုတ်မျှော်လင့်ထားသည့်ရလဒ်ပုံစံနှင့်မကိုက်ညီပါ။
WomeRound : True သို့မဟုတ် မှားယွင်းသော boolean အမျိုးအစားအတွက်အတိအလင်းဖြတ်သန်းသွားပါ။
$algos = hash_algos();
print_r($algos);
Parameter သည်အမှားအယွင်းများကိုရှောင်ရှားနိုင်ရန်လက်ရှိ PHP ပတ်ဝန်းကျင်တွင် Hash Algorithms ကိုလက်ရှိ PHP ပတ်ဝန်းကျင်တွင်မည်သည့် PHP ပတ်ဝန်းကျင်တွင်ထောက်ပံ့သည်ကိုစစ်ဆေးပါ။
parameter value မှန်ကန်သောကြောင်းမခေါ်မီ parameters တွေကိုပုံနှိပ်ထုတ်ဝေပါ။
$algo = 'sha256';
$password = 'myPassword';
$salt = 'randomSalt';
$iterations = 1000;
$length = 64;
var_dump($algo, $password, $salt, $iterations, $length);
$key = hash_pbkdf2($algo, $password, $salt, $iterations, $length, false);
echo $key;
ဘေးကင်းလုံခြုံမှုနှင့်စွမ်းဆောင်ရည်အကြားချိန်ခွင်လျှာကိုရှာဖွေရန်အချိန်ကိုက်လုပ်ဆောင်ချက်မှတစ်ဆင့်သတ်မှတ်ထားသည့်အချိန်ကုန်လွန်ပြီးနောက်အချိန်ကုန်လွန်ပြီးနောက်အချိန်ကိုလေ့လာပါ။
$start = microtime(true);
hash_pbkdf2('sha256', 'password', 'salt', 10000);
$end = microtime(true);
echo "အချိန်ကုန်စေသော:" . ($end - $start) . "စက်ဏန့်";
output ရလဒ်များသည်မျှော်မှန်းထားသောအရှည်အရှည်နှင့်ပုံစံများနှင့်ကိုက်ညီမှုရှိမရှိကိုအတည်ပြုပါ။
$algo = 'sha256';
$password = 'user_password';
$salt = 'unique_salt_value';
$iterations = 10000;
$length = 64; // 64hexadecimals ဇာတ်ကောင်,တူညီသော32ဒရယ်
$raw_output = false;
$derived_key = hash_pbkdf2($algo, $password, $salt, $iterations, $length, $raw_output);
echo "ဆင်းသက်လာသော့:" . $derived_key;
ဤနေရာတွင် ဆားသည် ထူးခြား။ ကျပန်းဖြစ်ရမည်ဟုသတိပြုပါ။
hash_pbkdf2 ကို အသုံးပြုသောအခါ hash algorithm သည်မှန်ကန်ကြောင်းအတည်ပြုရန်သေချာပါစေ။
ဘေးကင်းလုံခြုံမှုနှင့်စွမ်းဆောင်ရည်ကိုသေချာစေရန်ကြားဖြတ်မှုများကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်သင့်သည်။
ရလဒ်အရှည်နှင့် format parametersters format parameters တွေကိုမျှော်လင့်ချက်များနှင့်အညီဖြစ်ရမည်။
debugging, hash_algos () , var_dump နှင့် timing timing fatchs စဉ်အတွင်း var_dump နှင့် timing functions များကိုအသုံးပြုနိုင်သည်။
ယင်းတို့ကိုကျွမ်းကျင်စေခြင်းသည်သင့်အားလုံခြုံစိတ်ချရသောအန္တရာယ်များကိုရှောင်ရှားရန်နှင့် parametermer အမှားများကြောင့်ဖြစ်ပေါ်လာသောအစီအစဉ်ပုံမှန်မဟုတ်သောအစီအစဉ်များကိုရှောင်ရှားရန်ကူညီနိုင်သည်။