လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Crypt တွင်ဆား၏အခန်းကဏ် and နှင့်ပုံစံအမျိုးမျိုးဖော်ပြချက် ()

Crypt တွင်ဆား၏အခန်းကဏ် and နှင့်ပုံစံအမျိုးမျိုးဖော်ပြချက် ()

M66 2025-05-20

PHP တွင် crypt () function သည် password သိုလှောင်မှုကဲ့သို့သောဖြစ်ရပ်များတွင်တွေ့ရလေ့ရှိသောတစ်လမ်းသွားစာဝှက်စနစ်အတွက် function တစ်ခုဖြစ်သည်။ ယခုအခါ Password_Hash () ကဲ့သို့သောခေတ်မီသောနည်းလမ်းများကိုပိုမိုအသုံးပြုရန်ပိုမိုလိုအပ်သော်လည်းယခုအခါ Crypt () ၏လုပ်ငန်းခွင် () အထူးသဖြင့်အယူအဆများကိုနားလည်ခြင်းသည် ပို. နားလည်သဘောပေါက်နေဆဲဖြစ်သည်။ ဤဆောင်းပါးသည်အခန်း ကဏ် fatch တွင်ပါ 0 င်သောအရည်အသွေးနှင့်လက်တွေ့သုံးခြင်းဥပမာများကိုအသေးစိတ်မိတ်ဆက်ပေးမည်။

ဆားဆိုတာဘာလဲ

SALL သည် စာဝှက်ထားသည့်အခါမူရင်းဒေတာများကိုအနှောင့်အယှက်ဖြစ်စေရန်စကားဝှက်တစ်ခုမတိုင်မီသို့မဟုတ်အပြီးထည့်သွင်းထားသည့် string တစ်ခုမှာလုံခြုံရေးတိုးတက်အောင်လုပ်ခြင်း, ရိုးရိုးလေးပြောရလျှင်ဆား၏လုပ်ဆောင်မှုမှာစာဝှက်ဖြင့်ကွဲပြားခြားနားသောရလဒ်များကိုရယူရန်အတွက်တူညီသောစကားဝှက်ကိုခွင့်ပြုရန်,

ဥပမာအားဖြင့်, အသုံးပြုသူများနှစ် ဦး ၏စကားဝှက်များသည် Password123 ဖြစ်သည်။ ကွဲပြားခြားနားသောဆားများထည့်ပြီးတာနဲ့စကားဝှက်တွေဟာအတူတူပါပဲတောင်စာဝှက်ထားတဲ့ရလဒ်တွေကလုံးဝကွဲပြားခြားနားလိမ့်မယ်။

Crypt ၏လုပ်ငန်းယန္တရား ()

PHP တွင် Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 crypt(string $string, string $salt): string

$ sting သည် plaintext password ကိုစာဝှက်ရန်နှင့် ဒေါ်လာဆားသည် encryption algorithm ၏ parameter ဖြစ်သည် (၎င်းသည်ဆားသာမကအယ်လ်ဂါလမ်ကိုအသုံးပြုသည်)

ဆား၏ပုံစံဖော်ပြချက်

Crypt () သည် စာဝှက်စနစ် algorithms မျိုးစုံကိုထောက်ပံ့သည်။ မတူညီသော algorithms မှလိုအပ်သောဆားပုံစံသည်လည်းကွဲပြားခြားနားသည်။ ဤတွင်အများအားဖြင့် algorithms နှင့်သူတို့၏ဆားပုံစံများ

1 ။ Des Des (Default, ခေတ်နောက်ကျ)

 crypt('mypassword', 'rl');
  • ဆား - စာလုံးနှစ်လုံး (စုစုပေါင်း 12 bits)

  • အားနည်းချက်ကို encryption ကိုမထောက်ခံပါ

2 ။ MD5 ( $ 1 $ အမှတ်အသားကိုသုံးခြင်း)

 crypt('mypassword', '$1$abc12345$');
  • Salt Format - $ 1 $ 1-8 ဇာတ်ကောင်

  • Algorithm: MD5 ကိုအခြေခံသည်

  • ထုတ်လုပ်မှုအရှည်: 34 ဇာတ်ကောင်

3 ။ Blowfish ( $ 2A $ 2Y $ 2Y $ 2Y $ သို့မဟုတ် $ 2B $ အလံများ)

 crypt('mypassword', '$2y$10$usesomesillystring22$');
  • Salt Format: $ 2Y $ + 2-bit cost parameter + 22-biter + 22-basy base64 encoded ဆား

  • ကုန်ကျစရိတ် parameters တွေကို (အထက်ပါဥပမာ 10 တွင်ရှိသကဲ့သို့) စာဝှက်စနစ်ကိုထိန်းချုပ်ပါ

  • output ကိုအရှည်: 60 ဇာတ်ကောင်

4 ။ Sha-256 / SHA-512 ( $ 5 ဒေါ်လာ / $ 6 $ Mark)

 crypt('mypassword', '$5$rounds=5000$abcdefgh$'); // SHA-256
crypt('mypassword', '$6$rounds=5000$abcdefgh$'); // SHA-512
  • ဆားပုံစံ - $ 5 $ $ 6 $ 6 $ 6 $ 6-16 ဇာတ်ကောင်ဆား

  • ကျည်များသည် ITERATE အရေအတွက်ကိုထိန်းချုပ်သည်, ပုံမှန်အားဖြင့် 5000 ဖြစ်သည်, လုံခြုံမှုတိုးမြှင့်နိုင်သည်

လက်တွေ့ကျသောဥပမာများ

Crypt () ကို အမှန်တကယ် အသုံးပြု. ဆားကိုစိတ်ကြိုက်ပြုပြင်ခြင်းဥပမာတစ်ခုကိုကြည့်ကြစို့။

 <?php
$password = 'securePass123';
$salt = '$2y$12$ABCDEFGHJKLMNPQRSTUVWX'; // Blowfish, 12 ပေးရ

$hash = crypt($password, $salt);
echo "စာဝှက်ထားတဲ့စကားဝှက်:$hash";
?>

encrypt လုပ်ထားသော output ကိုဤပုံစံဖြင့်ဖြစ်လိမ့်မည်။

 $2y$12$ABCDEFGHJKLMNPQRSTUVWXrB92GhFIR77XRkThYs2D5cs1.GgZGq

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

 <?php
function generateBlowfishSalt($cost = 12) {
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./';
    $salt = '';
    for ($i = 0; $i < 22; $i++) {
        $salt .= $chars[random_int(0, 63)];
    }
    return sprintf('$2y$%02d$%s', $cost, $salt);
}

$password = 'MySecretPass!';
$salt = generateBlowfishSalt();
$hash = crypt($password, $salt);

echo "Salt: $salt\n";
echo "Hash: $hash\n";
?>

သင်၏စကားဝှက်ကိုအတည်ပြုရန်မှန်ကန်သောနည်းလမ်း

အသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်သည်မှန်ကန်မှုရှိ, မရှိစစ်ဆေးရန်အသုံးပြုသူမှထည့်သွင်းထားသော Plaintext password ကို Datlet တန်ဖိုးကိုဆားအဖြစ်သိမ်းဆည်းရန်အသုံးပြုသင့်သည်။

 <?php
$input = 'MySecretPass!';
$stored_hash = '$2y$12$ABCDEFGHJKLMNPQRSTUVWXrB92GhFIR77XRkThYs2D5cs1.GgZGq';

if (crypt($input, $stored_hash) === $stored_hash) {
    echo "စကားဝှက်မှန်!";
} else {
    echo "စကားဝှက်。";
}
?>

M66.net ကိုနမူနာဒိုမိန်းအမည်အဖြစ်အသုံးပြုခြင်းအခြေအနေများ

Password Token နှင့် link တစ်ခုနှင့် link တစ်ခုနှင့် link တစ်ခုနှင့်အတူ link တစ်ခုနှင့်အတူ redirect လုပ်လိုလျှင် URL ကိုအသုံးပြုလိုပါက M66.net ကဲ့သို့သောဒိုမိန်းအမည်ကိုသင်အသုံးပြုနိုင်သည်။

 <?php
$token = crypt('user@example.com', generateBlowfishSalt());
$url = 'https://m66.net/reset-password?token=' . urlencode($token);
echo "link ကို reset:" . $url;
?>

ဤနည်းဖြင့်ဆောက်လုပ်ထားသော URL သည်တူညီသောအီးမေးလ်လိပ်စာတစ်ခုတည်းကိုတိုးပွားစေလိမ့်မည်မဟုတ်ကြောင်းသေချာစေလိမ့်မည်။

အကျဉ်းချုပ်

PHP ၏ Crypt () function တွင်ဆားသည် encryption parameter တစ်ခုမျှသာမဟုတ်ပါ, မှန်ကန်သော encryption algorithm format ကိုရွေးချယ်ပြီးဆားကိုမှန်ကန်စွာအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်စကားဝှက်သိုလှောင်မှု၏လုံခြုံရေးကိုများစွာတိုးတက်စေနိုင်သည်။ Modern Development_Hash () နှင့် password_verify ()) ကိုအသုံးပြုရန်အတွက်ပိုမိုအကြံပြုသော်လည်း crypt ၏ယန္တရားကိုနားလည်ရန်အကြံပြုသော်လည်းစာဝှက်စနစ်နောက်ကွယ်မှမူများနှင့်အန္တရာယ်ကာကွယ်စောင့်ရှောက်ရေးမဟာဗျူဟာများကိုနားလည်ရန်အထောက်အကူပြုနိုင်သည်။