နေ့စဉ်စနစ်စီမံခန့်ခွဲမှုသို့မဟုတ်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်များတွင်တစ်ခါတစ်ရံတွင်အထူးသဖြင့် command line tools များတည်ဆောက်သည့်အခါတစ်ခါတစ်ရံတွင်ရိုးရှင်းသောသုံးစွဲသူစိစစ်အတည်ပြုယန္တရားတစ်ခုလိုအပ်သည်။ ကျွန်ုပ်တို့သည် Oauth, JWT သို့မဟုတ်ဒေတာဘေ့စ်သို့မဟုတ်ဒေတာဘေ့စ် (သို့) ဒေတာဘေ့စ်သို့မဟုတ်ဒေတာဘေ့စ်သို့မဟုတ်ဒေတာဘေ့စ်၏စစ်မှန်ကြောင်းစစ်ဆေးခြင်းယန္တရားများကိုအသုံးပြုလိုသော်လည်း Crypt () function ကို အခြေခံ. အသုံးပြုသူ authentication tool သည်လုံလောက်သည်။
ဤဆောင်းပါးသည် Crypt () အပေါ် အခြေခံ. PHP command line user verification tool ကိုတည်ဆောက်ရန်တစ်ဆင့်ချင်းအလိုက်သင်တစ်ဆင့်ချင်းလုပ်ဆောင်လိမ့်မည်။
Crypt () သည် PHP တွင် built-in encryption function တစ်ခုဖြစ်သည်။ ထောက်ပံ့ပေးသည့်ဆားပုံစံပေါ် မူတည်. ၎င်းသည်မတူညီသော algorithms (shi-256, Sha-256, Sha-256) ကိုသုံးနိုင်သည်။
$password = 'secret123';
$hashed = crypt($password, '$6$rounds=5000$mysalt$'); // အသုံးပြု SHA-512 စာဝှက်ပယ်
echo $hashed;
အသုံးပြုသူအမည်နှင့်သက်ဆိုင်ရာ encrypted password ကိုသိမ်းထားရန်အသုံးပြုသော Linux / Etc / Shadow ကဲ့သို့သောအသုံးပြုသူစကားဝှက်ဖိုင်ကို ဦး စွာသတ်မှတ်ရန်လိုအပ်သည်။
ဥပမာအားဖြင့်, users.txt ဖိုင်ကိုအောက်ပါအကြောင်းအရာများဖြင့်ဖန်တီးပါ။
alice:$6$rounds=5000$randomsalt$TtXcNpEYgkQq6nGyTT1ZqJK6sOHZ7GUa0OtUzBDwK8DUD.QHrVmMTE6EKH9vdA/5jYrc6IQsb9M4OzhxZs7Hz1
bob:$6$rounds=5000$othersalt$z1MBfFaSzPIcL7PZ8coYumWqaYvKPWhjvOwwBQ25BqNjfGC2THcR2A2E2MBc6m/mM6z2qKNEqgghADnIJo7KO0
auth.php ဖိုင်ကိုဖန်တီးပါ။
<?php
// က command line ကနေ run ရှိမရှိစစ်ဆေးပါ
if (php_sapi_name() !== 'cli') {
exit("ကျေးဇူးပြုပြီးဒီ script ကို command line မှ run ပါ。\n");
}
// အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုရယူပါ
fwrite(STDOUT, "အသုံးပြုသူ: ");
$username = trim(fgets(STDIN));
fwrite(STDOUT, "လှျို့ဝှက်စကား: ");
system('stty -echo'); // 隐藏လှျို့ဝှက်စကား输入
$password = trim(fgets(STDIN));
system('stty echo');
fwrite(STDOUT, "\n");
// အသုံးပြုသူဖိုင်များကိုဖတ်ပါ
$userFile = __DIR__ . '/users.txt';
if (!file_exists($userFile)) {
exit("အသုံးပြုသူဖိုင်မရှိပါ。\n");
}
$found = false;
$lines = file($userFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
list($user, $hashed) = explode(':', $line, 2);
if ($user === $username) {
// 验证လှျို့ဝှက်စကား
if (crypt($password, $hashed) === $hashed) {
echo "authentication ကိုအောင်မြင်သောဖြစ်ပါတယ်!ဝမ်းသာစွာနှုတ်ဆက်ခြင်း,{$username}。\n";
} else {
echo "လှျို့ဝှက်စကား错误。\n";
}
$found = true;
break;
}
}
if (!$found) {
echo "အသုံးပြုသူမတည်ရှိပါဘူး。\n";
}
အသုံးပြုသူအတွက်စကားဝှက်ကိုထည့်သွင်းခြင်းအားဖြင့်ရိုးရှင်းသော command line tool မှတဆင့်လုပ်ဆောင်နိုင်သည်။
<?php
// 创建新用户စာဝှက်ပယ်条目
$username = readline("新အသုံးပြုသူ: ");
$password = readline("လှျို့ဝှက်စကား: ");
// ဖြစ်ပါှးစေ salt နှင့် hash
$salt = base64_encode(random_bytes(8));
$salt = str_replace('+', '.', substr($salt, 0, 16)); // လိုက်ဖက်တဲ့အပြောင်းအလဲနဲ့
$fullSalt = '$6$rounds=5000$' . $salt . '$';
$hashedPassword = crypt($password, $fullSalt);
// ရလဒ်ရလဒ်
echo "{$username}:{$hashedPassword}\n";
// မှဆက်ပြောသည်နိုင်ပါသည် users.txt ဖိုင်ထဲမှာ
ဤကိရိယာသည်ရိုးရှင်းသော်လည်း script အလိုအလျောက်, လုံခြုံရေးစစ်ဆေးခြင်းသို့မဟုတ်လျင်မြန်စွာရှေ့ပြေးပုံစံများတွင်အလွန်အသုံးဝင်သည်။ ၎င်းကို bash scripts များ, အလိုအလျောက်ဖြန့်ကျက်မှုလုပ်ငန်းစဉ်များသို့အလွယ်တကူပေါင်းစည်းနိုင်ပြီး PHP CLI ကိရိယာများကိုဝင်ရောက်ရန် interfaces များကိုလုံခြုံစွာအသုံးပြုနိုင်သည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်အတွက် Professional authent productication ယန္တရားကိုလက်ခံရန်နှင့်စကားဝှက်ဖိုင်များကိုသင့်တော်သောခွင့်ပြုချက်ထိန်းချုပ်ရန်အတွက်သင့်တော်သောခွင့်ပြုချက်ထိန်းချုပ်ရန်အတွက်အကြံပြုရန်အကြံပြုသည်။