PHP ရှိ Ziparchive class ကို zip compressed files များကိုဖန်တီးရန်နှင့်စီမံခန့်ခွဲရန်အသုံးပြုသည်။ Ziparchive ကိုယ်တိုင်က encryption function ကိုတိုက်ရိုက်ပံ့ပိုးခြင်းမရှိသော်လည်း Openssll extension နှင့်ပေါင်းစပ်ပြီး file security ကိုတိုးတက်စေရန် compression လုပ်ထားသော package များကိုစာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းလုပ်ငန်းများကိုအကောင်အထည်ဖော်နိုင်သည်။
PHP ပတ်ဝန်းကျင်တွင် Ziparchive နှင့် Openssll extensions များကို ziparchive နှင့် openssll extension များကို သေချာအောင်လုပ်ပါ။
ပထမ ဦး စွာ Zip file တစ်ခုကိုဖန်တီးရန် Ziparchive ကို အသုံးပြု. ပစ်မှတ်ဖိုင်ကို compressed package ထဲသို့ထည့်ပါ။ compressed file content ကို openssl ၏ encryption function ကိုမှတဆင့် encrypted ဖြစ်ပါတယ်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
$zip = new ZipArchive();
$zipname = 'encrypted.zip';
if ($zip->open($zipname, ZipArchive::CREATE) === TRUE) {
// ဖိုင်တစ်ခုထည့်ပါ
$zip->addFile('data.txt', 'data.txt');
$zip->close();
// compressed packet data ကိုဖတ်ပြီး၎င်းကိုစာဝှက်ပါ
$zipdata = file_get_contents($zipname);
$encryptedzip = openssl_encrypt($zipdata, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456');
file_put_contents($zipname, $encryptedzip);
echo 'compressed package ကို encrypted ဖြစ်ပါတယ်。';
} else {
echo 'compressed အထုပ်ကိုဖန်တီးရန်ပျက်ကွက်。';
}
?>
အထက်ဖော်ပြပါဥပမာတွင် AEE 128-CBC algorithm ကိုအသုံးပြုသည်, စကားဝှက်သည် စကားဝှက် ဖြစ်ပြီးစကားဝှက်သည်စကားဝှက်ဖြစ်သည်။ အစသည် 12345678901234566 ဖြစ်သည်။ လိုအပ်သည့်အတိုင်း encryption algorithm နှင့် key ကိုချိန်ညှိနိုင်သည်။
decrypting သည့်အခါ compressed packet data ကိုပြန်လည်ထူထောင်ရန် Openssl ၏စာဝှက်ဖြည်ရန် function ကိုသုံးပါ, ပြီးနောက် Ziparchive ကို decompress သို့သုံးပါ။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
$zipname = 'encrypted.zip';
// encrypted compressed package contents တွေကိုဖတ်ပါ
$encryptedzip = file_get_contents($zipname);
// ရေှ့ပညာ
$decryptedzip = openssl_decrypt($encryptedzip, 'AES-128-CBC', 'password', OPENSSL_RAW_DATA, '1234567890123456');
file_put_contents($zipname, $decryptedzip);
// 打开ရေှ့ပညာ后的压缩包并解压
$zip = new ZipArchive();
if ($zip->open($zipname) === TRUE) {
$zip->extractTo('unzip/');
$zip->close();
echo '压缩包已ရေှ့ပညာ并解压缩。';
} else {
echo 'compressed အထုပ်ကိုဖွင့်ရန်ပျက်ကွက်。';
}
?>
တူညီသော algorithm နှင့်သော့များကိုစာဝှက်ဖြည်သည့်အဆင့်တွင်ဒေတာများကိုမှန်ကန်စွာပြန်လည်ကောင်းမွန်လာစေရန်စာဝှက်ဖြည်သည့်အဆင့်တွင်အသုံးပြုသည်။
PHP ၏ Ziparchive Class နှင့် Openssll Extension ကိုပေါင်းစပ်ခြင်းအားဖြင့် Zip fats ဖိုင်များကိုစာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းတို့ဖြင့်ဖိုင်များနှင့်သိုလှောင်မှုအတွင်းရှိဖိုင်များလုံခြုံရေးကိုတိုးမြှင့်နိုင်သည်။ ဤဆောင်းပါးတွင်ဥပမာများနှင့်ညွှန်ကြားချက်များသည်သင်၏စီမံကိန်းတွင်ဤအင်္ဂါရပ်ကိုအသုံးပြုရန်အတွက်အထောက်အကူပြုလိမ့်မည်ဟုမျှော်လင့်ပါသည်။