PHP တွင် hash operations များကိုလုပ်ဆောင်သည့်အခါ hash_init () , hash_update () နှင့် hash_final () နှင့် hash_final () နှင့် hash_final () နှင့် hash_final () နှင့် hash_final () နှင့် hash_final ()) ၎င်းတို့သည်ကြီးမားသောဖိုင်များ (သို့) chunked data များကိုပြုပြင်ရန်အတွက်သင့်လျော်သော Hash တန်ဖိုးများကိုတွက်ချက်ရန် streaming (segmented) streaming (segmented) နည်းလမ်းကိုပေးသည် ။
ဤဆောင်းပါးသည် hash_update () နှင့် hash_final () ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပြီးဂရုပြုမည့်အရာများကိုအာရုံစိုက်ပါလိမ့်မည်။
ဤလုပ်ဆောင်ချက်သုံးခု၏အခြေခံဖြစ်စဉ်မှာအောက်ပါအတိုင်းဖြစ်သည် -
hash အခြေအနေကိုစတင်ရန်:
$context = hash_init('sha256');
အဆင့်မြှင့်ထားသောအချက်အလက်များကိုအကြိမ်ကြိမ်
hash_update($context, 'ဒေတာ၏အစိတ်အပိုင်းတစ်ခု1');
hash_update($context, 'ဒေတာ၏အစိတ်အပိုင်းတစ်ခု2');
နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ။
$hash = hash_final($context);
ပြီးပြည့်စုံသောဥပမာ -
<?php
$context = hash_init('sha256');
hash_update($context, 'Hello ');
hash_update($context, 'World!');
$finalHash = hash_final($context);
echo "နောက်ဆုံး hash တန်ဖိုး: " . $finalHash;
?>
1 ?? hash_final () ကိုခေါ်ပြီးနောက်အခြေအနေကိုနောက်တဖန်မသုံးနိုင်ပါ
သင်ခေါ်ဆိုသောအခါ
$hash = hash_final($context);
အဆိုပါအခြေအနေတွင် $ account ဖျက်ဆီးခံရ ပြီး hash_update () သို့မဟုတ် hash_final () ကို ဆက်ခေါ်ရန်၎င်းကိုသင်မသုံးနိုင်တော့ပါ။
အခြား hashes များကိုတူညီသော data stream ပေါ်တွင် ဆက်. ရေတွက်လိုပါက hash_init () ကို ထပ်မံခေါ်ရန်လိုအပ်သည်။
2 ?? hash_copy () ကို ဌာနခွဲတစ်ခုအဖြစ်အသုံးပြုပါ
အကယ်. သင်သည်ဌာနခွဲရလဒ်မျိုးစုံကိုတူညီသောအခြေအနေတွင် အခြေခံ. ရရန်လိုအပ်ပါက hash_copy () ကို သုံးနိုင်သည်။
$context = hash_init('sha256');
hash_update($context, 'ဒေတာ၏အစိတ်အပိုင်းတစ်ခု');
$copy = hash_copy($context);
hash_update($context, 'နောက်ဖြစ်သောA');
$hashA = hash_final($context);
hash_update($copy, 'နောက်ဖြစ်သောB');
$hashB = hash_final($copy);
ဤနည်းအားဖြင့် ဒေါ်လာ Hashha နှင့် Hashb သည် မတူညီသောအကိုင်းအခက်များ၏ရလဒ်များဖြစ်သည်။
3 ?? ကြီးမားသောဖိုင်များပြုပြင်သည့်အခါပိတ်ပင်တားဆီးမှုဖြင့် update ကို
ကြီးမားသောဖိုင်များအတွက်, သင်သည် hash_update () ကို အပိုင်းအစများတွင်ဖတ်ရှုနိုင်သည်။
<?php
$context = hash_init('sha256');
$handle = fopen('largefile.bin', 'rb');
while (!feof($handle)) {
$chunk = fread($handle, 8192);
hash_update($context, $chunk);
}
fclose($handle);
$finalHash = hash_final($context);
echo "ကြီးမားသော File Hash Value: " . $finalHash;
?>
၎င်းသည်ဖိုင်များကိုတစ်ကြိမ်ဖတ်ရှုခြင်းကြောင့်ဖြစ်ပေါ်သောမှတ်ဉာဏ်ဖိအားကိုရှောင်ရှားသည်။
4 ?? URL အခြေအနေများတွင်အသုံးပြုပါ
အကယ်. သင်သည် http တောင်းဆိုမှုမှတဆင့်အချက်အလက်များကို streaming လုပ်နေလျှင်ဥပမာ -
<?php
$url = 'https://gitbox.net/sample-file.bin';
$context = hash_init('sha256');
$handle = fopen($url, 'rb');
if ($handle) {
while (!feof($handle)) {
$chunk = fread($handle, 8192);
hash_update($context, $chunk);
}
fclose($handle);
$finalHash = hash_final($context);
echo "Remote ဖိုင် hash တန်ဖိုး: " . $finalHash;
} else {
echo "ဖွင့်လို့မရဘူး URL。";
}
?>
ဂရုတစိုက် - PHPP.ini တွင် ခွင့်ပြုရန် ခွင့် ပြု ပါ,
5 ?? ညာဘက် algorithm ကိုရွေးချယ်ပါ
Hash_init ၏ပထမဆုံး parameter သည် algorithm အမည်ဖြစ်သည်။ MD5 သို့မဟုတ် Sha1 အစား Sha256 နှင့် Sha512 ကဲ့သို့သောခေတ်သစ် algorithms ကဲ့သို့သောခေတ်သစ် algorithms များကိုအသုံးပြုရန်အကြံပြုသည်။