PHP တွင် crypt () function ကိုများသောအားဖြင့်စကားဝှက်ကို hash လုပ်ရန်အသုံးပြုလေ့ရှိပြီးမူရင်းရည်ရွယ်ချက်မှာ data encryption သို့မဟုတ်လက်မှတ်အတွက်မဟုတ်ဘဲစကားဝှက်ကိုအတည်ပြုရန်ဖြစ်သည်။ သို့သော်လက်တွေ့ကျသောစီမံကိန်းများတွင် developer များသည် URL များကိုစာဝှက်ခြင်းသို့မဟုတ်လက်မှတ်ထိုးခြင်းကဲ့သို့သောအခြားရည်ရွယ်ချက်များအတွက် crypt () ကို အသုံးပြုရန်ကြိုးစားနိုင်သည်။ ဤဆောင်းပါးသည် Crypt () function သည် URL စာဝှက်ခြင်းသို့မဟုတ်လက်မှတ်နှင့်ဤကိစ္စနှင့်စပ်လျဉ်း။ လုံခြုံရေးနှင့်ထိရောက်မှုအတွက်သင့်တော်သည်။
အဆိုပါ crypt () function သည်တစ်လမ်းသွားစာဝှက်စနစ်အတွက် function တစ်ခုဖြစ်သည်။ ၎င်းသည်မတူညီသော algorithms (ဥပမာ - MD5, Blowfish, Sha-256, Sha-256) အပေါ် အခြေခံ. input string ကို hash ။ ပုံမှန်အသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
$hash = crypt("password", '$6$rounds=5000$usesomesillystringforsalt$');
function ၏ဒုတိယ pareter သည် algorithm ကိုဆုံးဖြတ်ရာတွင် output ကိုဆုံးဖြတ်ရာတွင်ပါ 0 င်သည့် "ဆား" ဖြစ်သည်။
encryption ကိုဆိုသည်မှာသင်သည်မူရင်းအကြောင်းအရာများကိုပြန်လည်ထူထောင်နိုင်သည် ။ Crypt (https://mps : //m66.net/download/download/fileload/fileload/fileload/fileload/fileload/fileload/fileload/fileload/Fileload/Fileload/Fileload ) ကိုပြုလုပ်ရန် Crypt ကိုအသုံးပြုပါ။ ဥပမာအားဖြင့်:
$url = "https://m66.net/download/file?id=12345";
$hash = crypt($url, '$6$rounds=5000$somesaltvalue$');
ဤကုဒ်သည် hash တန်ဖိုးများကိုထုတ်ပေးသည်။ သို့သော်မူရင်း URL ကိုသင်မပြန်နိုင်ပါ။ ထို့ကြောင့် crypt () သည် စာဝှက်စနစ်တစ်ခုအနေဖြင့်မသင့်တော်ပါ။
Crypt () သည်အခြေခံအားဖြင့်တစ်လမ်းတည်းရှိသော hash function တစ်ခုဖြစ်ပြီးသီအိုရီအရလက်မှတ်ရေးထိုးထားသောကိရိယာတစ်ခုအနေဖြင့်အသုံးပြုနိုင်ပါသည်, ၎င်းကိုလက်တွေ့တွင်မထောက်ခံပါ။ အကြောင်းပြချက်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
ဆားလုပ်ငန်းသည်မထိန်းချုပ်နိုင်ပါ ။ ဆားတန်ဖိုးကိုသင်ကိုယ်တိုင်ဖြင့်ထုတ်လုပ်ပြီးကယ်တင်ခြင်းရပါမည်။ တက်ကြွသောဆားတန်ဖိုးများကိုအသုံးပြုခြင်းသည်တူညီသော inputput အတွက်ကွဲပြားခြားနားသောရလဒ်များရရှိခြင်းကိုဖြစ်ပေါ်စေသည်။
Cross-platform screenification - ကွဲပြားခြားနားသောစနစ်များသည်အထူးသဖြင့်တိကျသော algorithms (shi-512 ကဲ့သို့သော algorithms) ကို အသုံးပြု. ကွဲပြားခြားနားစွာအသုံးပြုသော အစီအစဉ်များ ကိုအကောင်အထည်ဖော်နိုင်သည်။
output format သည်ရှုပ်ထွေးပြီး URL အတွက်မသင့်တော်ပါ ။ ထုတ်လုပ်ထားသော hash string သည် / နှင့် $ ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်နိုင်သည်။
$signed = urlencode(crypt($url, '$6$somesaltvalue$'));
// link ဥပမာများအတွက်:https://m66.net/download/file?id=12345&sig=HASH_STRING
စစ်မှန်မှုကိုအတည်မပြုနိုင်ပါ ။ Crypt () ၏မရှိမဖြစ်လိုအပ်သောရည်မှန်းချက်မှာစကားဝှက်ကိုဒေတာသမာဓိရှိမှုကိုသေချာစေသည်။ HMAC နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည်လက်မှတ်ရေးထိုးခြင်းလုပ်ငန်းစဉ်တွင်ယန္တရားအထောက်အပံ့မပါ 0 င်ပါ။
အကယ်. သင်သည်၎င်း၏သမာဓိနှင့်ကာကွယ်မှုကိုသေချာစေရန် URL ကိုလက်မှတ်ရေးထိုးရန်လိုအပ်ပါကဤမြင်ကွင်းအတွက်ဒီဇိုင်းပြုလုပ်ထားသော hash_hmac () function ကိုအသုံးပြုရန်အကြံပြုသည်။
$url = "https://m66.net/download/file?id=12345";
$secret = "my_secret_key";
$signature = hash_hmac('sha256', $url, $secret);
$signedUrl = $url . "&sig=" . $signature;
// စိစစ်အတည်ပြုစဉ်အတွင်း recalculate hash_hmac(url, secret) နှိုင်းယှဉ်အပြုအမူ
HMAC လက်မှတ်သည် symmetic ဖြစ်သည်။ ဆာဗာသည်သော့ကိုချွေတာသည်။ ဤနည်းလမ်းသည်ဒေတာများကိုအနှောင့်အယှက်မပေးထားကြောင်းသေချာစေရုံသာမက Cross-platform scrification ကိုလည်းလည်းသက်ဆိုင်သည်။
အဆိုပါ crypt () function သည် URLs များကိုစာဝှက်ရန်မသင့်တော်ပါ, တစ်ချိန်တည်းမှာပင်၎င်းသည် URL လက်မှတ်ရေးထိုးရန်မသင့်တော်ပါ။ ၎င်းသည်လုံခြုံရေး, URL လက်မှတ်ထိုးမှုများသို့မဟုတ်စိစစ်အတည်ပြုသည့်အခြေအနေများသို့ရောက်သောအခါအချက်အလက်သမာဓိနှင့်လုံခြုံမှုကိုသေချာစေရန် hash_hmac () သို့မဟုတ်အခြား encryption libraries များကိုအသုံးပြုရန်အကြံပြုသည် ။ URL encryption လိုအပ်ချက်များအတွက်အချိုးကျသို့မဟုတ်အချိုးမညီစာဝှက်စနစ် algorithms (ဥပမာ AES, RSA) ကို crypt အစားအကောင်အထည်ဖော်သင့်သည်။