تکنولوژی نوین اینترنتی
بیاید در مورد Hashing در لاراول صحبت کنیم. این یکی از بخشهای حیاتی در هر سیستم است که با دادههای حساس مانند پسوردها سروکار دارد.
لاراول به طور پیشفرض از Bcrypt برای هش کردن پسوردها استفاده میکنه، ولی امکان استفاده از الگوریتمهای دیگه مثل Argon2 هم وجود داره.
برای هش کردن پسورد، از متد Hash::make()
استفاده میکنیم:
برای چک کردن اینکه پسورد ورودی با پسورد هششده مطابقت داره یا نه، از متد Hash::check()
استفاده میکنیم:
نکته:
Hash::check()
پسورد ورودی رو با پسورد هششده مقایسه میکنه.
لاراول به طور پیشفرض از الگوریتم Bcrypt استفاده میکنه، ولی میتونی الگوریتمهای دیگه مثل Argon2 رو هم انتخاب کنی.
config/hashing.php
:
bcrypt: استاندارد و امن برای استفاده در اکثر موارد.
argon: الگوریتم جدیدتر و مقاومتر.
.env
:وقتی یک کاربر جدید ثبتنام میکنه یا پسورد خودش رو تغییر میده، باید پسورد هش شده رو ذخیره کنی:
لاراول یک Validation Rule برای بررسی صحت پسوردها فراهم کرده که به طور پیشفرض از bcrypt
استفاده میکنه.
Hash::check()
در Controller:
همچنین میتونی هر نوع دادهای رو هش کنی، نه فقط پسورد. مثلاً برای ایمیلها، یا حتی مقادیر خاصی که نیاز به حفظ امنیت دارند:
همیشه از الگوریتمهایی مثل Bcrypt یا Argon2 استفاده کن، چون امنیت بالایی دارند.
Hashing به معنی رمزنگاری یکطرفه است. پس از هش کردن، نمیتوان دادهی اصلی رو به راحتی بازیابی کرد.
عمل | کد |
---|---|
هش کردن پسورد | Hash::make($password) |
مقایسه پسورد | Hash::check($inputPassword, $hashedPassword) |
تنظیم الگوریتم در .env | HASH_DRIVER=argon2i |
اعتبارسنجی پسورد | Hash::check() |
ا