လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP's crypt () function ကို အသုံးပြု. လုံခြုံသောအသုံးပြုသူမှတ်ပုံတင်ခြင်းနှင့် login system တစ်ခုဖန်တီးနည်း။

PHP's crypt () function ကို အသုံးပြု. လုံခြုံသောအသုံးပြုသူမှတ်ပုံတင်ခြင်းနှင့် login system တစ်ခုဖန်တီးနည်း။

M66 2025-06-23

အသုံးပြုသူ authentication systems ၏လုံခြုံရေးသည်ဝက်ဘ်ဆိုက်များသို့မဟုတ်အသုံးချပရိုဂရမ်များတည်ဆောက်ရာတွင်အရေးကြီးသောထည့်သွင်းစဉ်းစားခြင်းဖြစ်သည်။ PHP သည်စကားဝှက်စာဝှက်ခြင်းနှင့်စစ်ဆေးခြင်းကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းအမျိုးမျိုးကိုပေးသည် ဤဆောင်းပါးသည်စကားဝှက်စာဝှက်ခြင်း, စိစစ်အတည်ပြုခြင်းနှင့်အသုံးပြုသူအချက်အလက်အပြောင်းအလဲများကိုအပါအ 0 င်လုံခြုံသောအသုံးပြုသူမှတ်ပုံတင်ခြင်းနှင့် login system ကိုတည်ဆောက်ရန် Crypt () function ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

1 ။ Sendpt () function ကိုမိတ်ဆက်

Crypt () သည် PHP မှပေးသော php မှပေးသော encryption function တစ်ခုဖြစ်ပြီးကြိုးများကိုစာဝှက်ရန်အသုံးပြုသော PHP algorithm ကိုအသုံးပြုသည်။ ၎င်းသည်ဆား (Sal) ပုံစံပေါ် မူတည်. MD5, MD5, Sha-256, Sha-256, Sha-512, Sha-512,

 string crypt ( string $str , string $salt )

ဆား ၏တန်ဖိုးသည် encryption algorithm ၏အမျိုးအစားနှင့်အပြုအမူကိုဆုံးဖြတ်သည်။ လုံခြုံရေးအတွက် Sha-512 သို့မဟုတ် blowish ကိုထောက်ပံ့သောဆားကိုအသုံးပြုရန်အကြံပြုသည်။

2 ။ အသုံးပြုသူမှတ်ပုံတင်ခြင်းလုပ်ငန်းစဉ်

အသုံးပြုသူတစ် ဦး ကိုမှတ်ပုံတင်သည့်အခါဒေတာဘေ့စ်ပေါက်ကြားမှုရှိနေသော်လည်းတိုက်ခိုက်သူသည်စကားဝှက်ကိုအလွယ်တကူမပြန်နိုင်အောင်လျှို့ဝှက်နံပါတ်တွင်စာဝှက်ရန်လိုအပ်သည်။

နမူနာကုဒ်: အသုံးပြုသူမှတ်ပုံတင်ခြင်း

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // အားကောင်းတဲ့ဆားတစ်ခုကိုဖန်တီးပြီးစကားဝှက်ကိုစာဝှက်ပါ(အသုံးပြုSHA-512)
    $salt = '$6$' . bin2hex(random_bytes(16)) . '$';  // SHA-512
    $hashed_password = crypt($password, $salt);

    // အသုံးပြုသူအမည်နှင့်စာဝှက်ထားသောစကားဝှက်ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းပါ(ဖြင့်SQLiteဥပမာတစ်ခုအနေဖြင့်)
    $db = new PDO('sqlite:users.db');
    $stmt = $db->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
    $stmt->execute([$username, $hashed_password]);

    echo "အောင်မြင်စွာမှတ်ပုံတင်,ကျေးဇူးပြု <a href='https://m66.net/login.php'>လော့ဂ်အင်</a>。";
}
?>

HTML မှတ်ပုံတင်ခြင်းပုံစံ:

 <form method="POST" action="">
    အသုံးပြုသူ:<input type="text" name="username" required><br>
    လှျို့ဝှက်စကား:<input type="password" name="password" required><br>
    <input type="submit" value="စာရင်း">
</form>

3 ။ အသုံးပြုသူ login လုပ်ငန်းစဉ်

သစ်ထုတ်လုပ်သည့်အခါမူရင်းစကားဝှက်ကိုကျွန်ုပ်တို့သိရန်မလိုအပ်ပါ။ အသုံးပြုသူမှထည့်သွင်း ထားသော စကားဝှက်ကိုဒေတာဗေ့စ်တွင်တူညီသောဆားကို အသုံးပြု. ၎င်းကိုသိုလှောင်ထားသော hash နှင့်နှိုင်းယှဉ်ပါ။

နမူနာကုဒ်: အသုံးပြုသူလော့ဂ်အင်

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password_input = $_POST['password'];

    $db = new PDO('sqlite:users.db');
    $stmt = $db->prepare("SELECT password FROM users WHERE username = ?");
    $stmt->execute([$username]);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($row) {
        $hashed_password = $row['password'];
        if (crypt($password_input, $hashed_password) === $hashed_password) {
            echo "လော့ဂ်အင်成功!ကြိုဆိုပါတယ်,{$username}。";
        } else {
            echo "လှျို့ဝှက်စကား错误。";
        }
    } else {
        echo "အသုံးပြုသူမတည်ရှိပါဘူး。";
    }
}
?>

HTML login ပုံစံ:

 <form method="POST" action="">
    အသုံးပြုသူ:<input type="text" name="username" required><br>
    လှျို့ဝှက်စကား:<input type="password" name="password" required><br>
    <input type="submit" value="လော့ဂ်အင်">
</form>

4 ။ ဒေတာဘေ့စ်ဖွဲ့စည်းပုံဥပမာ (SQLite)

 CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE NOT NULL,
    password TEXT NOT NULL
);

5 ။ လုံခြုံရေးအကြံဥာဏ်

  • HTTPS ကိုအသုံးပြုခြင်း - form transfer အားလုံးကိုစာဝှက်ထားတဲ့ connection တစ်ခုမှာဖျော်ဖြေဖို့သေချာအောင်လုပ်ပါ။

  • CSRF ကာကွယ်မှုကိုထည့်ပါ

  • login ကြိုးစားမှုအရေအတွက်ကိုကန့်သတ်ပါ ။ brute force cracking ကိုတားဆီးပါ။

  • PHP ဗားရှင်းကိုအချိန်မီဖြည့်ဆည်းပါ ။ encryption algorithms နှင့် functions များကိုလုံခြုံအောင်ထားပါ။

  • ပိုမိုခေတ်မီသောလုပ်ဆောင်ချက်များကိုအသုံးပြုသောအခါ (password_hash) ကို အသုံးပြုသောအခါဤဆောင်းပါး၏ယုတ္တိဗေဒကိုသင်ရည်ညွှန်းနိုင်သည် - crypt () သည် တရားဝင် ဖြစ်သည်။

ကောက်ချက်

ဆင်ခြင်သုံးသပ်ခြင်း () function ကိုအသုံးပြုခြင်းနှင့်ပူးတွဲပါစကားဝှက်စိစစ်အတည်ပြုယုတ္တိဗေဒကို အသုံးပြု. ဆင်ခြင်တုံတရားဖြင့် အသုံးပြု. ကျွန်ုပ်တို့သည်လုံခြုံစိတ်ချရသောအသုံးပြုသူ authentication system ကိုတည်ဆောက်နိုင်သည်။ Modern PHP သည် password_hash () လုပ်မလုပ်ခြင်းများကိုပိုမိုအဆင့်မြင့်သော interfaces များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပေးသည်။ Crypt () သည် PHP ပတ် 0 န်းကျင်သို့မဟုတ်အထူးလိုက်လျောညီထွေဖြစ်မှုလိုအပ်ချက်များနည်းသောဗားရှင်းအချို့တွင်လက်တွေ့ကျတဲ့ရွေးချယ်မှုဖြစ်သည်။