PHP တွင် Crypt () function သည်အသုံးများသော encryption function တစ်ခုဖြစ်သည်။ ၎င်းသည်အဓိကအားဖြင့်စကားဝှက်သိုလှောင်မှုကိုကိုင်တွယ်သောအခါ, ဤဆောင်းပါးသည် crypt () function ၏ parameters များကိုအသေးစိတ်လေ့လာပြီး PHP ၏ crypt () function ကို အသုံးပြု. ကြိုးများကိုလုံခြုံစွာ encrypt လုပ်ရန်ဥပမာအားဖြင့်သရုပ်ပြပါမည်။
Crypt () သည် PHP တွင် built-in encryption function တစ်ခုဖြစ်ပြီး Unix ၏ Crypt () function ကို အခြေခံ. အကောင်အထည်ဖော်သည်။ ၎င်းသည် input string ကို encrypt လုပ်ပြီးစာဝှက်ထားတဲ့ string ကိုပြန်ပို့ရန်ကွဲပြားခြားနားသော encryption algorithms (des, MD5, Blowfish, Sha-256, Sha-256) ကိုအသုံးပြုသည်။
function ရှေ့ပြေးပုံစံ:
string crypt ( string $str [, string $salt ] )
$ str : စာဝှက်ရန်လိုအပ်သည့် string တစ်ခု, များသောအားဖြင့်စကားဝှက်တစ်ခု။
$ ဆား (optional ကို) - encryption algorithm နှင့်ဆား string ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ကွဲပြားခြားနားသောဆားများသည် encryption algorithm နှင့်ရလဒ်များကိုဆုံးဖြတ်ရန်။
၎င်းသည်စာဝှက်ရန် plaintext string တစ်ခုဖြစ်ပြီးများသောအားဖြင့်အသုံးပြုသူ၏စကားဝှက်ဖြစ်သည်။
ဆားဆိုင်ရာသတ်မှတ်ချက်များသည် encryption algorithm နှင့်ရလဒ်များကိုဆုံးဖြတ်ရန်သော့ချက်ဖြစ်သည်။ မတူညီသောဆားပုံစံများသည်မတူညီသော algorithms ကိုကိုယ်စားပြုသည်။
des des des des encryption <br> ဇာတ်ကောင် 2 လုံးနှင့်ဆားဖြင့်ဆား - "AB"
၎င်းသည်မူလစာဝှက်စနစ်နည်းလမ်းဖြစ်ပြီးအားနည်းသောလုံခြုံရေးနှင့်အကြံပြုထားခြင်းမရှိပါ။
MD5 encryption <br> <br> $ 1 $ 1 ဖြင့်စတင်ပါ။ ဥပမာအားဖြင့် "ဒေါ်လာ 1 ဒေါ်လာ $ m66Net12 $"
ဤသည် MD5 algorithm ကို သုံး. encrypt လုပ်ထားသည်။
blowfish encryption <br> <br> $ 2A $ 2Y $ 2Y $ , $ 2B $ စသည်တို့ဖြင့်စတင်ပါ။ ဥပမာအားဖြင့် ဒေါ်လာ 2Y $ 10 $ m66netetsaltsaltsaltsaltsa $ 2Y $ 10 ဒေါ်လာ m66Netetsaltsaltsaltssa မှဒေါ်လာ 21 ဒေါ်လာဖြင့်ဂဏန်း 2 လုံးဖြင့်ပြုလုပ်ပါ။
Blowish သည်အတော်လေးလုံခြုံသော algorithm တစ်ခုဖြစ်သည်။
Sha-256 encryption <br> $ 5 $ 5 ဒေါ်လာ နှင့်ဆားဖြင့်စတင်ပါ။ ဥပမာ - "$ 5 $ m66Net $"
Sha-512 encryption <br> $ 6 $ $ 6 နှင့်ဆားဖြင့်စတင်ပါ။ ဥပမာ - "$ 6 $ m66Net $"
// MD5 ဆားဥပမာ
$salt_md5 = '$1$m66net12$';
// Blowfish ဆားဥပမာ,10 ဒါဟာကုန်ကျစရိတ်အချက်ပဲ(cost factor)
$salt_blowfish = '$2y$10$m66netsaltsaltsaltsa$';
// SHA-256 ဆားဥပမာ
$salt_sha256 = '$5$m66net$';
// SHA-512 ဆားဥပမာ
$salt_sha512 = '$6$m66net$';
အောက်ဖော်ပြပါအချက်များသည် crypt () function ကို အသုံးပြု. ကြိုးများကိုစာဝှက်ရန်ပုံပြရန်ဥပမာအနည်းငယ်ဖြစ်သည်။
$password = "mypassword";
$salt = "m6"; // 2ဆားဆား
$hashed = crypt($password, $salt);
echo "DESencryption ကိုရလဒ်များ:" . $hashed;
$password = "mypassword";
$salt = '$1$m66net12$'; // ဖြင့် $1$ အစအ ဦး မှာဆား
$hashed = crypt($password, $salt);
echo "MD5encryption ကိုရလဒ်များ:" . $hashed;
$password = "mypassword";
$salt = '$2y$10$m66netsaltsaltsaltsa$'; // Blowfish,ပေးရ10
$hashed = crypt($password, $salt);
echo "Blowfishencryption ကိုရလဒ်များ:" . $hashed;
$password = "mypassword";
$salt = '$6$m66net$';
$hashed = crypt($password, $salt);
echo "SHA-512encryption ကိုရလဒ်များ:" . $hashed;
စကားဝှက်ကိုစာဝှက်ပြီးတဲ့နောက်မှာတော့ထည့်သွင်းထားတဲ့စကားဝှက်ကို calcrypt လုပ်ပြီးတဲ့အခါ,
// စကားဝှက် hash သည်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားကြောင်းယူဆပါ
$stored_hash = '$6$m66net$........'; // 从数据库取出的encryption ကိုရလဒ်များ
// အသုံးပြုသူသည်အသုံးပြုသူ log in လုပ်သည့်အခါစကားဝှက်ကိုရိုက်ထည့်ပါ
$input_password = "mypassword";
// ဆားကိုဖယ်ရှားပါ,ထုံးစံအားဖြင့် stored_hash ပထမ ဦး ဆုံးအစိတ်အပိုင်းအနည်းငယ်,တိကျတဲ့အရှည် algorithm အပေါ်မူတည်သည်
$salt = substr($stored_hash, 0, strrpos($stored_hash, '$') + 1);
// စကားဝှက်ကိုတူညီသောဆားဖြင့်ပြန်လည်ပြင်ဆင်ပါ
$input_hash = crypt($input_password, $salt);
if ($input_hash === $stored_hash) {
echo "စကားဝှက်ကိုစစ်ဆေးခြင်းအောင်မြင်ခဲ့သည်";
} else {
echo "စကားဝှက်ကိုစစ်ဆေးခြင်းမအောင်မြင်ပါ";
}
Crypt () လုပ်ဆောင်ချက်သည် encryption algorithms အမျိုးမျိုးကိုထောက်ပံ့သည်။
Blowfish ( $ 2Y $ 2Y $ ) သို့မဟုတ် Sha-512 ( $ 6.2 ) algorithm ကိုအသုံးပြုရန်အကြံပြုသည်။
ဆားသည်ကျပန်းနှင့်ထူးခြားသောဖြစ်ရမည်။ မှန်ကန်သောပုံစံဖြင့်ဖြစ်ရမည်။
စကားဝှက်ကိုစစ်ဆေးအတည်ပြုသည့်အခါစကားဝှက်ကိုစာဝှက်ထားသည့် hash တန်ဖိုးရှိဆားကို အသုံးပြု. စာဝှက်ပြီးနှိုင်းယှဉ်ပါ။