လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Hash_final နှင့် hash_equals သုံး. hash တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်နည်းလမ်းများ

Hash_final နှင့် hash_equals သုံး. hash တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်နည်းလမ်းများ

gitbox 2025-05-29

Hash_Final သည် Hash အခြေအနေမှနောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ များသောအားဖြင့် hash_init နှင့် hash_update လုပ်ဆောင်ချက်များကို hash တန်ဖိုးများကိုတဖြည်းဖြည်းချင်းတည်ဆောက်ရန် hash_init နှင့် hash_update လုပ်ဆောင်ချက်များကိုအသုံးပြုလိမ့်မည်။ hash_final မှရရှိသော hash တန်ဖိုးမပြောင်းလဲနိုင်သောအရာများဖြစ်သည်။

hash_final function syntax:

 string hash_final ( resource $context [, bool $raw_output = false ] )
  • $ Context : Hash အခြေအနေကို hash_init နှင့် hash_update ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုမှတဆင့်ဖန်တီးခဲ့သည်။

  • $ Raw_Output : အကယ်. မှန်ကန် ပါကမူရင်း binary data များကိုပြန်ပို့လိမ့်မည်။ အကယ်. မှားယွင်းသော (ပုံမှန်) ဆိုလျှင် hexadecimal string ကိုပြန်လည်ရောက်ရှိလိမ့်မည်။

ဥပမာ -

 <?php
$data = "Hello, World!";
$context = hash_init('sha256');
hash_update($context, $data);
$hash = hash_final($context);

echo "Hash value: " . $hash;
?>

ရလဒ်ရလဒ် -

 Hash value: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda01c8007c6f4adf4a0a2

ဤဥပမာတွင် Hash_init ကို SHA-256 hash အခြေအနေကိုစတင်ရန်, Hash Data ကို update လုပ်ရန် hash_update ကို အသုံးပြု. နောက်ဆုံး hash value မှနောက်ဆုံးပေါ် hash တန်ဖိုးကိုရယူပါ။

2 ။ Hash_equals function ကိုမိတ်ဆက်

Hash_equals function သည် php ၏ function တစ်ခုဖြစ်ပြီး Hash တန်ဖိုးနှစ်ခုကိုလုံခြုံစွာနှိုင်းယှဉ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်အချိန်တိုက်ခိုက်မှုများကိုကာကွယ်ရန်အဓိကကိရိယာတစ်ခုဖြစ်သည်။ hash_equals မရှိခြင်းကြောင့်ရိုးရှင်းသော == အော်ပရေတာနှိုင်းယှဉ်မှုတန်ဖိုးသည်အချို့သောသတင်းအချက်အလက်များကိုဖော်ထုတ်ရန်ဟက်ကာများကိုအမြတ်ထုတ်ရန်အတွက်အမြတ်ထုတ်နိုင်သည့်အခက်အခဲများကြောင့်ယိုစိမ့်မှုကြောင့်ယိုစိမ့်မှုကိုဖြစ်ပေါ်စေနိုင်သည်။

Hash_equals သည် မည်သည့်ကိစ္စတွင်မဆိုထိုအချိန်ကိုတစ်ချိန်တည်းတွင်ကြိုးနှစ်ချောင်း၏တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်အချိန်ကုန်ခံပြီးအချိန်တိုက်ခိုက်မှုများကိုရှောင်ရှားခြင်းအားဖြင့်ဖြစ်သည်။

hash_equals syntax:

 bool hash_equals ( string $known_string , string $user_string )
  • $ Meathstring : လူသိများသော hash တန်ဖိုး (များသောအားဖြင့်ဒေတာဘေ့စ်တွင်သိမ်းထားသော hash တန်ဖိုး) ။

  • $ user_string : အသုံးပြုသူမှထည့်သွင်း hash တန်ဖိုး။

ဥပမာ -

 <?php
$stored_hash = "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda01c8007c6f4adf4a0a2";
$user_input = "Hello, World!";

if (hash_equals($stored_hash, hash('sha256', $user_input))) {
    echo "The hashes match.";
} else {
    echo "The hashes do not match.";
}
?>

ရလဒ်ရလဒ် -

 The hashes match.

ဤဥပမာတွင် Hash_equals သည်သိုလှောင်ထားသော Hash တန်ဖိုးကိုအသုံးပြုသူ input hash value နှင့်လုံခြုံစွာနှိုင်းယှဉ်ရန်အသုံးပြုသည်။ နှစ်ခု hashes တန်းတူလျှင်, input ကိုမှန်ကန်သည်ကိုဆိုလိုသည်။

3 ။ hash_final နှင့် hash_equals ပေါင်းစပ်အသုံးပြုပါ

များသောအားဖြင့် hash တန်ဖိုးများကိုတွက်ချက်ခြင်းနှင့်လုံခြုံစွာနှိုင်းယှဉ်ခြင်းများကိုသေချာစေရန် hash_final နှင့် hash_equals များကို အတူတကွအသုံးပြုသည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်စကားဝှက်စစ်ဆေးခြင်းကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ hash_final ကို ပထမဆုံး အသုံးပြု. စကားဝှက်၏ hash တန်ဖိုးကိုဖန်တီးရန် Hash_equals များကို ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသော hash တန်ဖိုးကိုလုံခြုံစွာနှိုင်းယှဉ်ရန်အသုံးပြုပါ။

ပြီးပြည့်စုံသောဥပမာ -

 <?php
// အသုံးပြုသူမှတင်သွင်းသောစကားဝှက်ကိုယူဆပါ
$user_input_password = "user_password123";

// စကားဝှက် Hash သည်ဒေတာဘေ့စ်တွင်သိုလှောင်ထားသည်(ဥပမာ, hard code ထဲမှာ)
$stored_password_hash = "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda01c8007c6f4adf4a0a2";

// သွား hash_final input password ၏ hash တန်ဖိုးကိုတွက်ချက်ပါ
$context = hash_init('sha256');
hash_update($context, $user_input_password);
$user_input_hash = hash_final($context);

// အသုံးပြု hash_equals စကားဝှက် Hash တန်ဖိုးများကိုလုံခြုံစွာနှိုင်းယှဉ်ပါ
if (hash_equals($stored_password_hash, $user_input_hash)) {
    echo "Password is correct.";
} else {
    echo "Password is incorrect.";
}
?>

ရလဒ်ရလဒ် -

 Password is correct.

ဤဥပမာတွင်သုံးစွဲသူထည့်သွင်းထားသောစကားဝှက်၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_final ကို အသုံးပြု. ၎င်းကို hash_equals မှတစ်ဆင့်သိုလှောင်ထားသော hash တန်ဖိုးနှင့်နှိုင်းယှဉ်ပါ။ ဤနည်းအားဖြင့် Hash နှိုင်းယှဉ်မှု၏လုံခြုံရေးကိုသေချာစေရန်နှင့်ဖြစ်နိုင်ချေရှိသောအချိန်တိုက်ခိုက်မှုများကိုကာကွယ်ပေးသည်။