نحوه هش کردن پسورد در Asp.net core در روش dbfirst
سلام
برای هش کردن پسورد در core2.1 و ذخیره در دیتابیس چکاری باید انجام شود؟ کد نویسی بصورت dbfirst انجام شده است. از روش identity استفاده نکردم.
با سلام
براي رمزنگاري پسورد در روش DbFirst شما مي تونيد از الگوريتمهاي مختلف رمزنگاري مثل Md5 و يا Sha256 يا ... استفاده کنيد. براي اين منظور ابتدا تايين کنيد از چه روشي مي خواهيد استفاده کنيد. اگر از روش MD5 استفاده مي کنيد فيلد پسورد رو از نوع nvarchar(32) و اگر از نوع Sha256 استفاده مي کنيد فيلد پسورد رو از نوع nvarchar (128) قرار بديد. دليل اين موضوع اين هست که الگوريتم رمزنگاري MD5 يک رشته هش شده 32 کاراکتري توليد مي کند و الگوريتم Sha256 يک رشته هش شده 128 کاراکتري رو توليد مي کنه.
سپس در کدهاي خودتون مي تونيد به روش زير رمز عبور رو تبديل به يک رشته هش شده کنيد. کد زير مربوط به sha256 مي باشد.
SHA256CryptoServiceProvider SHA256 = new SHA256CryptoServiceProvider();
Byte[] B1;
Byte[] B2;
B1 = UTF8Encoding.UTF8.GetBytes(model.Password);
B2 = SHA256.ComputeHash(B1);
string HashedPassword = BitConverter.ToString(B2);
دقت کنيد که براي استفاده از الگوريتم هاي رمز نگاري بايد از کتابخانه
using System.Security.Cryptography;
استفاده کنيد.
در دستور بالا يک رشته هش شده 128 کاراکتري غير قابل بازگشت توليد مي شود.
نکته : براي اينکه بتونيد موقع لاگين رمز عبور را کنترل کنيد بايد رمز عبور را مجدد هش کنيد و با رشته هش شده درون ديتابيس مقايسه کنيد
موفق باشيد
شما میتونید از ProtectProvider نیز استفاده کنید . کد هاشو میزارم و کافی فقط کپی Paste کنی
public class ProtectProvider: IProtectProvider
{
private readonly IDataProtector protector;
public ProtectProvider(IDataProtector _protector)
{
protector = _protector.CreateProtector(typeof(ProtectProvider).FullName);
}
public string Encrypt(string StrInput)
{
byte[] Bytes = protector.Protect(Encoding.UTF8.GetBytes(StrInput));
return Convert.ToBase64String(Bytes);
}
public string Decrypt(string StrInput)
{
byte[] Bytes = protector.Unprotect(Convert.FromBase64String(StrInput));
return Encoding.UTF8.GetString(Bytes);
}
}
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2