Asp.net MVC Şifreleme Algoritması İle Kullanıcı Kaydı

Kullanıcıların bilgilerinin güvenliğinin sağlanma yollarından bir tanesi şifreleri kripto şifre algoritmaları ile veri tabanımıza kaydetmek.Romalı yönetici Jül Sezar’ın başlattığı kripto şifreleme tekniği günümüzde farklı algoritmalarla karşımıza çıkmakta ve hala bu yöntem etkili bir şekilde farklı algoritmalarla kullanılmaktadır.

Bu yazımız da Asp.Net MVC ile şifre(password) özelliğimizi nasıl Hash edeceğimizi (Crypto şekilde şifre kaydı yapmayı) göreceğiz.

İlk öncelikle Kullanıcı sınıfımızı oluşturalım ;

   public class User 
{
    public int ID {get; set;}
    public string Name { get; set;}   
    public string LastName { get; set; }
    public string Email { get; set; }
    public string Telephone { get; set; }
    public string Password { get; set; } 
    public string salt { get; set; }
    public bool IsActive { get; set; }
    public bool IsAdmin { get; set; }
    public DateTime CreateDate { get; set; }
}

Ardından “SolutionExplorer” üzerinde sağ tıklayarak “Manage NuGet Packages for Solution..” mağazasına giriyoruz.

Ardından “Browse” altında “SimpleCrypto” ismiyle arama yaparak tik olan özelliği İnstall ediyoruz;

asp.net SimpleCrypto
asp.net SimpleCrypto

“SimpleCrypto” yükledikten sonra controllerımızda ayarlarımızı yapabiliriz.

Burada “Uye-Kaydi” olarak Route ettiğimiz sayfa altında , viewdan gelen bilgilerimizi “userModel” ile çekerek”var user” ile oluşturduğumuz “user” nesnesine eşitleyebiliyoruz.Veritabanımıza kaydedilecek şifre burada “encrypedPassword” nesnesinden almaktadır çünkü “crypto” nesnesine atamış olduğumuz yüklenen SimpleCrypto algoritması gelen şifreyi kendi algoritmasında hashleyecek yani kriptolayacak ve sonrasında kayıt işlemini gerçekleştirecektir.Kriptolanmış şifremiz veri tabanı tablomuzda “Password” column altında olacaktır.

[Route("Uye-Kaydi")]
public ActionResult CreateUser()
{
return View();
}
[HttpPost]
[Route("Uye-Kaydi")]
   public ActionResult CreateUser(User userModel)
{
AndDb db = new AndDb();
var entity = new User();
var crypto = new SimpleCrypto.PBKDF2();
var encrypedPassword = crypto.Compute(userModel.Password);
var user = new User();
int result = 0;
     try
        {
            user.Email = userModel.Email;
            user.Password = encrypedPassword;
            user.Name = userModel.Name;
            user.LastName = userModel.LastName;
            user.Telephone = userModel.Telephone;
            user.salt = crypto.Salt;
            user.CreateDate = DateTime.Now;
            user.IsActive = true;
            user.IsAdmin = false;
            db.User.Add(user);
            db.SaveChanges();
            return Redirect("/");
        }
        catch(Exception ex)
        {
            return View();
        }

    }

Artık kayıt işlemi başarılı bir şekilde gerçekleşmelidir.Şifreleme algoritması olan “SimpleCrypto” aynı zamanda sadece şifreyi kaydetmek için algoritmasını kullanmaz giriş yapılabilmesi oluşturulan şifreye bağımlı bir “Salt” değer oluşturmaktadır,bu salt değeri giriş yaparken kullanır.

Veri tabanında ki çıktımız şu şekilde olmalıdır;

Asp.net Mvc Şifreleme Algoritması
Asp.net Mvc Şifreleme Algoritması

Veri tabanı çıktımıza göre kaydımız gerçekleşti , View ile veri tabanını karşılaştıracak olursak;

Asp.Net MVC ile Şifreleme Algoritması Kullanımı
Asp.Net MVC ile Şifreleme Algoritması Kullanımı

Kullanıcı kaydımız gerçekleşti , bir sonra ki yazımız da şifreleme algoritması “SimpleCrypto” ile Kullanıcı girişini işleyeceğiz.

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir