در این آموزش نحوه هش کردن رمز عبور با SHA-256 را برسی میکنیم. رمز در دیتابیس نباید قابل خواندن باشد. و حتما آن را باید رمز کرد. یکی از بهترین روش های هش رمز استفاده از الگوریتم SHA-256 میباشد.
توابع هش یک نوع رمزنگاری هستند. و دادههای دیجیتالی را بهصورت یکطرفه تغییر میدهند. و آنها را به یک عبارت خروجی با نام هش و با یک اندازه ثابت، تبدیل میکنند.
منظور از یکطرفه بودن این توابع چیست ؟ یعنی با داشتن هش، نمیتوان داده اولیه را محاسبه کرد اما با مقایسهی هش خروجی با هشی که با توجه به دادههای درست انتظار آن را داشتیم، میتوانیم تایید کنیم که یک داده صحیح است.
الگوریتم های هشینگ متنوعی وجود دارند که هرکدام برای کاربرد خاصی استفاده میشوند. نوعی از این الگوریتمها، الگوریتم SHA (مخفف Secure Hashing Algorithm) یا الگوریتم هشینگ امن نام دارد که کاربرد آن، از نامش مشخص است.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Register([Bind(Include = "UserID,Name,Family,Password,RePassword,Email")] UserRegisterViewModel User)
{
if (ModelState.IsValid)
{
string password=Sha256.GetPassword(User.Password);
User.Password= password;
User MyUser = new User();
MyUser = AutoMapperConfig.mapper.Map<UserRegisterViewModel, User>(User);
MyUser.RegisterDate = DateTime.Now;
MyUser.Gender = true;
db.Users.Add(MyUser);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(User);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult login([Bind(Include = "Email,Password")]UserLoginViewModel userLoginViewModel)
{
if(ModelState.IsValid)
{
userLoginViewModel.Password = Sha256.GetPassword(userLoginViewModel.Password);
var user=db.Users.FirstOrDefault(t=>t.Email == userLoginViewModel.Email && t.Password==userLoginViewModel.Password);
if (user!=null)
{
ModelState.AddModelError("login", "ورود با موفقیت امجام شد");
}
else
{
ModelState.AddModelError("login", "رمز عبور یا نام کاربری صحیح نمیباشد");
}
}
return View();
}
دانلود کلاس هش کردن رمز عبور با SHA-256
خرید از تهران آی تی به صورت آنلاین بوده لینک دانلود به صورت خودکار برای شما ایمیل میشود بدیهی است که در هنگام خرید باید از ایمیل واقعی خود استفاده کنید. چنانچه نیاز به هرگونه سوال درباره محصول و یا مشاوره و کمک در خرید آنلاین داشتید از طریق ایمیل و یا شماره های تماس ارتباط برقرار کنید 09121486770 ahadian2@gmail.com