نحوه رمز نگاری رشته‌ها در لاراول چگونه است؟

یکی از ساده‌ترین روش‌های رمزنگاری یک رشته و ذخیره در دیتابیس در لاراول به صورت زیر است:

Hash::make('plain-text');

که قابل مشاهده است مورد یا رشته‌ی مورد نظر هش خواهد شد و نوع هش نیز بر مبنای الگوریتم Bcrypt است.

همچنین از Helper زیر نیز می‎توان استفاده کرد که نتیجه مشابه خواهد بود:

bcrypt('plain-text');

حال اگر بخواهیم یک رشته‌ی ساده را با یک رشته‌ی هش شده مقایسه کنیم (به فرض پسورد وارد شده توسط کاربر با پسورد ذخیره شده در دیتابیس، می‌توانیم به صورت زیر عمل کنیم:

if(Hash::check('plain-text' , $password)){
    //do something...
}

مثال: در زیر فرض بر این است قبل‌تر وجود کاربر را بررسی کرده‌ایم و حالا قصد داریم در صورت صحیح بودن پسورد ورودی توسط کاربر، او را از طریق id لاگین کنیم:

if(Hash::check('plain-text' , $password)){
    auth()->loginUsingId($user->id);
}

جهت اینکه تعیین کنیم آیا پسورد نیاز به هش مجدد دارد یا خیر:

if (Hash::needsRehash($hashed)) {
    $hashed = Hash::make('plain-text');
}

درباره نویسنده: احسان

مطالب زیر را حتما بخوانید