လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Custom encryption algorithm ၏ကန ဦး ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန် PHP () PHP တွင် PHP () function ကိုမည်သို့အသုံးပြုရမည်နည်း။

Custom encryption algorithm ၏ကန ဦး ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန် PHP () PHP တွင် PHP () function ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-06-15

ဖွံ့ဖြိုးတိုးတက်မှုတွင်အချက်အလက်များကိုအချက်အလက်များကိုမကြာခဏအသုံးပြုသည်။ PHP တွင် Binary Data ကို format လုပ်ရန်အသုံးပြုသောအလွန်အစွမ်းထက်သော function ကို ( ) အထုပ် ()) ရှိသည်။ ရိုးရာသဘောမျိုးဖြင့်စာဝှက်ခြင်းလုပ်ငန်းစဉ်မဟုတ်သော်လည်း ဆင်ခြင်တုံတရား၏ဆင်ခြင်တုံတရား () သည် "ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒ algorithms ၏" ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒ "ကိုတည်ဆောက်ရန်ကျွန်ုပ်တို့နှင့်ပူးပေါင်းဆောင်ရွက်နိုင်သည်။

1 ။ အထုပ် () function ကိုနားလည်ပါ

အထုပ်၏ 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)ထုပ်ပိုးနံပါတ်များ

2 ။ စာဝှက်ခြင်း IDEA: ထုပ်ပိုး + encoding

ဒေတာများကို binary form ထဲသို့ထည့်ပြီး base64 encoding သို့မဟုတ်စိတ်ကြိုက်ပြောင်းလဲခြင်းစည်းမျဉ်းများဖြင့်၎င်းကို "encrypt" နိုင်သည်။ ဤနည်းလမ်းကို AES နှင့် RSA ကဲ့သို့သောပရော်ဖက်ရှင်နယ်စာဝှက်စနစ်နှင့်နှိုင်းယှဉ်။ မရပါ,

3 ။ ရိုးရှင်းသော Custom Custom encryption ထုပ်ပိုးခြင်းဆိုင်ရာယုတ္တိဗေဒကိုတည်ဆောက်ပါ

ကျွန်ုပ်တို့စာဝှက်လိုသည့်အချက်အလက်များသည်အောက်ပါအစိတ်အပိုင်းများပါ 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==

4 ။ ဒေတာကိုဖြည်ဖို့ဘယ်လို

စာဝှက်ထားတဲ့အချက်အလက်တွေကို ဖြည် ချပြီးတဆင့်မူရင်းအကြောင်းအရာထဲကိုပြန်ဖြေမယ်။

 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
)

5 ။ URL ဂီယာသို့လျှောက်ထားပါ

၎င်းသည် base64-encoded stringing ဖြစ်စဉ်တစ်ခုဖြစ်သောကြောင့်၎င်းကို URL သို့လုံခြုံစွာဖြည့်စွက်နိုင်သည်။

 $url = "https://m66.net/api/receive.php?token=" . urlencode(custom_encrypt(2048, 1));

လက်ခံသူစာဝှက်ဖြည်အတွက်တူညီသည်။

 $token = $_GET['token'];
$data = custom_decrypt($token);

6 ။ အကျဉ်းချုပ်

POSP () PHP တွင်လျစ်လျူရှုထားသည့်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်အခြေခံ binary data များကိုအတိအကျထိန်းချုပ်ထားသည်။ အချို့သောအခြေအနေများတွင်ပေါ့ပါးသောစာဝှက်ခြင်း (သို့) ဒေတာ encapsulation များလိုအပ်သည့်နေရာများတွင်၎င်းကို base64_encode () နှင့် ဖြည့်တင်းခြင်း () ကိုအသုံးပြုခြင်းသည် custom encryption transmition logic ကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည်။

ဟုတ်ပါတယ်, ဒီချဉ်းကပ်မှုသည်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုထုတ်လုပ်ရန်မသင့်တော်ပါ။ သင်အသုံးပြုသူစကားဝှက်များ, ငွေရေးကြေးရေးအချက်အလက်များစသဖြင့်ကိုင်တွယ်နေပါက ကျေးဇူးပြု. Openssll သို့မဟုတ် Libsodium ကဲ့သို့သော standard encryption algorithms ကိုရွေးချယ်ပါ။

Pack of Pack ၏ပုံစံအမျိုးမျိုးသင်္ကေတများကိုကျွမ်းကျင်စွာဖန်တီးပေးခြင်းဖြင့်ကွန်ယက် protocols များ၏ထုပ်ပိုးခြင်းလုပ်ငန်းစဉ်ကိုတောင်ဖန်တီးနိုင်ပြီးစိတ်ကြိုက် API ဒီဇိုင်းတွင်ကြီးမားသောအောင်မြင်မှုများကိုပြုလုပ်နိုင်သည်။