Barner
  
YAZAR :Emin Gökçe
ALANI :Php, Mysql
Verileri Şifreleme (Password Encryption)

Verilerinizi genelde veritabanına kullanıcının forma girdiği şekilde kaydedersiniz. Fakat bu güvenlik açısından tehlike yaratabilecek bir durumdur. Sizin veritabanınızı bir şekilde ele geçiren kişiler kullanıcının veritabanındaki şifresini kolayca görebilirler. Belki kendiniz bir şifreleme algoritması yazarak bunun önüne geçebilirsiniz. Ama bunun için iyi bir algoritma yazmanız gerekmektedir. Eğer çok iyi bir şifreleme algoritmanız yoksa kullanmayın.

Fakat .NET ile birlikte gelen birkaç tane şifreleme algoritması mevcuttur. Bu makalede bunu nasıl gerçekleştireceğinizi anlatacağım.
Öncelikle aşağıdaki şekilde bir form oluşturalım. Sayfamızın ismini sifreleme.aspx olarak kaydedelim. 


 

Şimdi sıra geldi kodumuzu yazmaya. Aşağıdaki kodu sifreleme.aspx.cs olarak kaydedin. 

private void Button1_Click(object sender, System.EventArgs e)
{
     if(txtstring.Text != "")
     {
          if(RadioButtonList1.SelectedItem.Value == "sha1")
          {
               string str = FormsAuthentication.HashPasswordForStoringInConfigFile(txtstring.Text, "sha1");
               // TextBox?a girilen değer sha1 algoritması ile şifreleniyor.
               Label2.Text = "Yazdığınız <font color=blue>" + txtstring.Text.ToString() + "</font><br><font color=red>" + str + "</font><br> ifadesine dönüştü";
          }
          if(RadioButtonList1.SelectedItem.Value == "md5")
          {
               string str = FormsAuthentication.HashPasswordForStoringInConfigFile(txtstring.Text, "md5");
               // TextBox?a girilen değer md5 algoritması ile şifreleniyor.
               Label2.Text = "Yazdığınız <font color=blue>" + txtstring.Text.ToString() + "</font><br><font color=red>" + str + "</font><br> ifadesine dönüştü";
          }
     }
}
Burada sha1 ve md5 olarak iki türlü şifreleme algoritması sözkonusudur. Bu örnekte her ikisinide deneyerek sonuçları görebilirsiniz. Bu şifreleme algoritması tersine çalışmaz yani; şifreleme sonucunda çıkan ifadeyi, orijinal haline çeviremezsiniz. Bunu veritabanında kullanırken; veritabanından aldığınız şifrelenmiş değeri, kullanıcının girdiği değeri şifreleyerek karşılaştırabilirsiniz. 

Son olarak sifreleme.aspx.cs dosyamızın başına System.Web.Security namespace?ini eklemeyi unutmayın. Eğer bu namespace?i eklemeden sayfayı derlerseniz;

The type or namespace name ?FormsAuthentication? could not be found (are you missing a using directive or an assembly reference?)

hatasını alırsınız.

Sayfamızı çalıştırıp nasıl bir şifre ürettiğini görelim.

Alıntı : remzigurfidan.com