ဖွံ့ဖြိုးတိုးတက်မှုတွင်အချက်အလက်များကိုအချက်အလက်များကိုမကြာခဏအသုံးပြုသည်။ PHP တွင် Binary Data ကို format လုပ်ရန်အသုံးပြုသောအလွန်အစွမ်းထက်သော function ကို ( ) အထုပ် ()) ရှိသည်။ ရိုးရာသဘောမျိုးဖြင့်စာဝှက်ခြင်းလုပ်ငန်းစဉ်မဟုတ်သော်လည်း ဆင်ခြင်တုံတရား၏ဆင်ခြင်တုံတရား () သည် "ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒ algorithms ၏" ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒ "ကိုတည်ဆောက်ရန်ကျွန်ုပ်တို့နှင့်ပူးပေါင်းဆောင်ရွက်နိုင်သည်။
အထုပ်၏ function ကို () function ကို function ကိုသတ်မှတ်ထားသော format ဖြင့် binary string ကိုထည့်ရန်ဖြစ်သည်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string pack ( string $format , mixed $values [, mixed $... ] )
$ format သည် နောက်ဆက်တွဲ $ တန်ဖိုးများ parameters တွေကိုဘယ်လိုထုပ်ပိုးဖို့ဘယ်လိုသတ်မှတ်တဲ့ format string ကိုဖြစ်ပါတယ်။ ဥပမာအားဖြင့်:
$binary = pack("N", 123456); // အရ 32 ရှည်လျားသောလက်မှတ်မထိုး(big-endian)ထုပ်ပိုးနံပါတ်များ
ဒေတာများကို binary form ထဲသို့ထည့်ပြီး base64 encoding သို့မဟုတ်စိတ်ကြိုက်ပြောင်းလဲခြင်းစည်းမျဉ်းများဖြင့်၎င်းကို "encrypt" နိုင်သည်။ ဤနည်းလမ်းကို AES နှင့် RSA ကဲ့သို့သောပရော်ဖက်ရှင်နယ်စာဝှက်စနစ်နှင့်နှိုင်းယှဉ်။ မရပါ,
ကျွန်ုပ်တို့စာဝှက်လိုသည့်အချက်အလက်များသည်အောက်ပါအစိတ်အပိုင်းများပါ 0 င်သည်ဆိုပါစို့။
အသုံးပြုသူ ID (Integer)
Timestamp (Integer)
စစ်ဆင်ရေးအမျိုးအစား (1 byte identifier)
ပုံသေအတည်ပြုကုဒ် (string)
ဤအကြောင်းအရာများကိုထုပ်ပိုးရန် Pack () ကို အသုံးပြုကြပါစို့။
function custom_encrypt($userId, $actionType) {
$timestamp = time();
$checkCode = 'm66'; // ပုံသေအတည်ပြုကုဒ်
// binary strings သို့ဒေတာထုပ်ပိုး
$binaryData = pack("NNCa3", $userId, $timestamp, $actionType, $checkCode);
// အသုံးပြု base64 ကုဒ်,နောက်ဆုံးတွင်လွှဲပြောင်းထုတ်လုပ်နိုင်သည်“စာဝှက်ပယ်”ကြိုး
return base64_encode($binaryData);
}
"NNCA3" format string ၏အဓိပ္ပါယ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
N : 32-bit INFIDIDED ရှည်လျားသောကိန်း (userid)
n : 32-bit လက်မှတ်မထားသောပုံစံ (Timestamp)
C : 8-bit IDIGNED ဇာတ်ကောင်များ (Actiontype)
A3 : 3-byte string ကို (checkcode)
ကျနော်တို့ကစမ်းသပ်နိုင်ပါတယ်:
echo custom_encrypt(1024, 5);
output သည်ထုပ်ပိုးပြီး encoded string ကိုဖြစ်သည်။
AAAAAAgAAZ8ZziUAbTY2AA==
စာဝှက်ထားတဲ့အချက်အလက်တွေကို ဖြည် ချပြီးတဆင့်မူရင်းအကြောင်းအရာထဲကိုပြန်ဖြေမယ်။
function custom_decrypt($encoded) {
$binaryData = base64_decode($encoded);
$data = unpack("NuserId/Ntimestamp/CactionType/a3checkCode", $binaryData);
return $data;
}
မည်သို့အသုံးပြုရမည်နည်း
$encoded = custom_encrypt(2048, 3);
$decoded = custom_decrypt($encoded);
print_r($decoded);
output သည်တစ်ခုခုဖြစ်လိမ့်မည်။
Array
(
[userId] => 2048
[timestamp] => 1716821234
[actionType] => 3
[checkCode] => m66
)
၎င်းသည် base64-encoded stringing ဖြစ်စဉ်တစ်ခုဖြစ်သောကြောင့်၎င်းကို URL သို့လုံခြုံစွာဖြည့်စွက်နိုင်သည်။
$url = "https://m66.net/api/receive.php?token=" . urlencode(custom_encrypt(2048, 1));
လက်ခံသူစာဝှက်ဖြည်အတွက်တူညီသည်။
$token = $_GET['token'];
$data = custom_decrypt($token);
POSP () PHP တွင်လျစ်လျူရှုထားသည့်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်အခြေခံ binary data များကိုအတိအကျထိန်းချုပ်ထားသည်။ အချို့သောအခြေအနေများတွင်ပေါ့ပါးသောစာဝှက်ခြင်း (သို့) ဒေတာ encapsulation များလိုအပ်သည့်နေရာများတွင်၎င်းကို base64_encode () နှင့် ဖြည့်တင်းခြင်း () ကိုအသုံးပြုခြင်းသည် custom encryption transmition logic ကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည်။
ဟုတ်ပါတယ်, ဒီချဉ်းကပ်မှုသည်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုထုတ်လုပ်ရန်မသင့်တော်ပါ။ သင်အသုံးပြုသူစကားဝှက်များ, ငွေရေးကြေးရေးအချက်အလက်များစသဖြင့်ကိုင်တွယ်နေပါက ကျေးဇူးပြု. Openssll သို့မဟုတ် Libsodium ကဲ့သို့သော standard encryption algorithms ကိုရွေးချယ်ပါ။
Pack of Pack ၏ပုံစံအမျိုးမျိုးသင်္ကေတများကိုကျွမ်းကျင်စွာဖန်တီးပေးခြင်းဖြင့်ကွန်ယက် protocols များ၏ထုပ်ပိုးခြင်းလုပ်ငန်းစဉ်ကိုတောင်ဖန်တီးနိုင်ပြီးစိတ်ကြိုက် API ဒီဇိုင်းတွင်ကြီးမားသောအောင်မြင်မှုများကိုပြုလုပ်နိုင်သည်။