အင်တာနက်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဒေတာဘေ့စ်များသည်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုသိုလှောင်ခြင်းနှင့်စီမံခြင်းအတွက်အဓိကကိရိယာတစ်ခုဖြစ်လာသည်။ PHP application များအရအသုံးပြုသူစကားဝှက်များ, ခရက်ဒစ်ကဒ်အချက်အလက်ကဲ့သို့သောအထိခိုက်မခံသောအချက်အလက်များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းရန်လိုအပ်သည်။ ထို့ကြောင့်ဒေတာအနေဖြင့်ဒေတာဘေ့စ်များ၏လုံခြုံရေးကိုသေချာစေရန်အချက်အလက်များကိုစာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းနည်းပညာများအလွန်အရေးကြီးသည်။
PHP သည် AES (အဆင့်မြင့်စာဝှက်စနစ်စံ) နှင့် RSA (rivest-shamir-adleman) ကဲ့သို့သော encryption algorithms အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ဒေတာဘေ့စ်ဆက်သွယ်မှုများတွင် AES algorithm ကိုများသောအားဖြင့်အထိခိုက်မခံသောအချက်အလက်များကိုစာဝှက်ရန်အသုံးပြုလေ့ရှိသည်။ AES algorithm ကိုအသုံးပြုပြီးအချက်အလက်များကိုစာဝှက်နည်းပြသသည့်ဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။
<?php // encryption functions function encrypt($data, $key) { $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($encrypted . '::' . $iv); } ?>
နောက်တစ်ခုကဒေတာဘေ့စ် connection ကိုတည်ဆောက်ရန်နှင့်စာဝှက်ထားတဲ့အချက်အလက်များကိုသိမ်းဆည်းရန် PDO ကိုသုံးနိုင်သည်။
<?php // ဒေတာဘေ့စ်ဆက်သွယ်မှု $servername = "localhost"; $username = "your_username"; $password = "your_password"; $key = "your_encryption_key"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); $conn-> setatribute (pdo :: attr_errmode, pdo :: ermdo :: ermoode_exception); // $ ဒေတာများကို encrypt လုပ်ထားသည့်ဒေတာ = "sensitive_info"; // စာဝှက်ထားတဲ့ဒေတာ $ encrypteddata = encryptata = encrypt ($ ဒေတာ, $ key); // စာဝှက်ထားတဲ့ဒေတာများကိုဒေတာဘေ့စ် $ sql = "ဇယားသို့ထည့်သွင်းပါ (encrypted_data) တန်ဖိုးများ ('$ encrypteddata')" $ Conn-> Exec ($ sql); ECHO "ဒေတာများကိုစာဝှက်ပြီးသိမ်းဆည်းထားတယ်။ "; } ဖမ်း (PoCoException $ E) { ပဲ့တင်သံ "အမှား -" ။ $ e-> gettessage (); } $ can = null; >
စာဝှက်ထားတဲ့ဒေတာတွေကိုဒေတာဘေ့စ်ကနေပြန်လည်ရယူရန်လိုအပ်သည့်အခါဒေတာပြန်လည်ထူထောင်ရေးအတွက်စာဝှက်ဖြည်ခြင်းနည်းပညာကိုအသုံးပြုသည်။ AES algorithm ကိုအသုံးပြုပြီးဒေတာကိုစာဝှက်ဖြည်ဖို့ဘယ်လိုဖေါ်ပြတဲ့ဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။
<?php // decryption function ကို function decrypt($data, $key) { list($encryptedData, $iv) = explode('::', base64_decode($data), 2); return openssl_decrypt($encryptedData, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); } ?>
အောက်ဖော်ပြပါကုဒ်သည်ဒေတာဗေ့စ်မှစာဝှက်ထားသောဒေတာများကိုမည်သို့ရယူရမည်ကိုပြသပြီး၎င်းကိုစာဝှက်ဖြည်ရမည်ကိုပြသသည်။
<?php // ဒေတာဘေ့စ်ဆက်သွယ်မှု $servername = "localhost"; $username = "your_username"; $password = "your_password"; $key = "your_encryption_key"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); $conn-> setatribute (pdo :: attr_errmode, pdo :: ermdo :: ermoode_exception); // စာဝှက်ထားတဲ့ဒေတာတွေကိုဒေတာဘေ့စ် $ sql = "table ကို select လုပ်ထားတဲ့ encrypted_data ကိုရွေးချယ်ပါ" ။ $ stmt = $ conn-> query ($ sql); $ ရလဒ် = $ stmt-> fetch (); // decrypt ဒေတာ $ decrypteddata = decrypt ($ ရလဒ် ['encrypted_data'], $ key); ပဲ့တင်သံ "စာဝှက်ဖြည်ထားတဲ့အချက်အလက်များ -" ။ $ decrypteddata; } ဖမ်း (PoCoException $ E) { ပဲ့တင်သံ "အမှား -" ။ $ e-> gettessage (); } $ can = null; >
PHP တွင်စာဝှက်စနစ်နှင့်စာဝှက်ဖြည်နည်းများကိုအသုံးပြုခြင်းအားဖြင့်ဒေတာဘေ့စ်တွင်အထိခိုက်မခံသောအချက်အလက်များ၏လုံခြုံရေးကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။ AES algorithm ၏ encryption နှင့်စာဝှက်စနစ်သည်အချက်အလက်များ၏လျှို့ဝှက်ချက်ကိုကာကွယ်ပေးသည်သာမကအချက်အလက်များယိုစိမ့်မှုများကိုလည်းကာကွယ်ပေးသည်။ သတိပြုသင့်သည်မှာစာဝှက်စနစ်၏လုံခြုံရေးကိုကာကွယ်ရန်အလွန်အရေးကြီးသည်, ထို့ကြောင့်သော့ကိုထုတ်ဖော်ခြင်းကိုကာကွယ်ရန်သင့်တော်သောအစီအမံများကိုပြုလုပ်သင့်သည်။
ဤဆောင်းပါးသည် PHP တွင်ဒေတာစာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းနည်းပညာကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးသည်။ သင်၏ဖွံ့ဖြိုးရေးလုပ်ငန်းအတွက်ရည်ညွှန်းချက်ကိုရည်ညွှန်းနိုင်သည်ဟုမျှော်လင့်ပါသည်။