Yaptıklarımı sadece yaptığım zaman anlayabilirsiniz.

11 Mart 2009 Çarşamba

Asp.Net ile md5 Şifreleme

Merhabalar..
Yazdığımız web uygulamalarında genellikle uyelerimizin şifrelerini genellikle veritabanımızda tutarken bir şifreleme algoritması kullanılırız bunlardan en çok kullanılan md5'tir.Bu gün sizlere asp.net ile md5 kullanarak nasıl şifre değiştirme yapılacağını, girişlerde(logins) md5 kontrolünün nasıl yapıldığını dilim döndüğünce anlatmaya çalışacağım ...Kodları yazıp yorumlar (comments) ekleyerek anlatacağım.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public
partial class admin_Default : System.Web.UI.Page
{



protected
void Page_Load(object sender, EventArgs e) // Sayfa yüklendiğinde yapılıcaklar
{



if (
Session["UyeId"] != null)//Session (ileride başlık olarak deginilicek) açılmış mı kontrol ediyoruz.
{

Response.Write("Session açık"); // Session açıldıysa ekrana session açıldı yazacak

SqlConnection baglanti = new SqlConnection("Data Source=IP;Initial Catalog=DATABASE;User ID=USER;Password=PASSWORD-"); // SQL yani VeriTabanı(vt) baglantımızı yapıyoruz
baglanti.Open();//Baglantımızı açtık.
SqlCommand sorgu = new SqlCommand("select * from Tbl_Kullanici Where UyeId=@UyeId", baglanti);//Uyeler içerisinde sessiondan gelen değeri select ile seçiyoruz
sorgu.Parameters.Add("@UyeId", Session["UyeId"]);//yukaruda @uyeID olarak gönderdiğimiz parametre vt'mizdeki uyelerin ID sine eşit.


SqlDataReader dr = sorgu.ExecuteReader();//Sorgu sonuçlarımızı datareader'a atıyoruz
while (dr.Read()) // DataReaderımızda data yukluyken
{

Response.Redirect("panel.aspx");//Yapılıcaklar > Mesela bizde hoş geldiniz , yazıyor ben başka bir sayfaya yönlendiriyorum.
}
}
else
{
Response.Write("Giriş yapınız");//Eğer giriş yapılamadı ise yani select sorgusuna makine diliyle > 0 geldiyse giriş olmayacak ve ekrana giriş yapınız yerine > Üye bulunamadı veya kullanıcı adı şifre yanlış diyebilirsiniz.
}
}
protected
void Button1_Click(object sender, EventArgs e)//Şimdi md5'ikıyaslıyıcaz yani asıl giriş şuanda burada üye gir butonuna bastıgında
{
string sifrem = txtSifre.Text; // ilk olarak şifresini alıcaz
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(sifrem, "md5"); // Daha sonra aldıgımız şifreyi md5'e çevireceğiz..

SqlConnection baglanti = new SqlConnection("Data Source=IP;Initial Catalog=DATABASE;User ID=USER;Password=PASSWORD");//Daha sonra tekrar baglanacağız vt'mize
baglanti.Open();//baglantımızı açıcaz
SqlCommand cmd = new SqlCommand("select * from Tbl_Kullanici Where Kullanici=@Kullanici and Sifre=" + "'" + password + "'", baglanti);// İşte burada yukarıda md5lediğimiz textbox'dan gelen şifreyi yani md5'i vt ile karşılaştırıyoruz.

cmd.Parameters.Add("@Kullanici",kullanici.Text);//Yukarıda @ işareti ile gönderdiğimiz parametreleri burada belirtiyoruz.

SqlDataReader dr = cmd.ExecuteReader();//DataReaderımıza verileri çektik
if (dr.Read())
{
Session["UyeId"] = Convert.ToInt32(dr["UyeId"]);//Eğer sessiondan gelen veriler vt ile uyumluysa giricek değilse ekrana "Kullanıcı adı veya şifre yanlış" yazacak
}
else
{

Response.Write("Kullanıcı adı veya şifre yanlış");
}
}
}

Şimdi change password yani şifre değiştirme sayfamızı yazalım
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public
partial class admin_sifre : System.Web.UI.Page
{
protected
void Page_Load(object sender, EventArgs e)//Sayfa yüklendiğinde yani açıldıgında
{
if (
Session["UyeId"] == null)//Eğer session açılmadıysa default.aspx sayfasına geri dönecek
{
Response.Redirect("./default.aspx");
}
}


protected
void Button1_Click(object sender, EventArgs e) //session başarıyla açıldıysa BUTON'a tıkladıgımızda aşağıdaki kodlar gerçekleşecek.
{
if (
TextBox2.Text == "")//Eğer textbox boşsa
{
Label1.Text = "Şifre boş olamaz"; // Ekrana "Şifre boş olamaz" yazacak
}
else
{
string sifrem = TextBox2.Text; // Şifreyi aldık
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(sifrem, "md5"); //Şifreyi md5 şekline çevirdik
SqlConnection baglanti = new SqlConnection("Data Source=IP;Initial Catalog=DATABASE;User ID=SA;Password=PASSWORD-"); // VT'na baglandık
baglanti.Open(); //baglantımızı açtık
SqlCommand cmd = new SqlCommand("update Tbl_Kullanici set Sifre=" + "'"+ password + "'" , baglanti); // yukarıda md5lediğimiz şifreyi vt'deki şifre ile değiştirmek için gerekli sorguyu yazdık
//cmd.Parameters.Add("@pwd", TextBox2.Text);//Yukarıda yolladıgımız parametreleri belirttik
cmd.ExecuteNonQuery();//Sorgumuzu çalıştırdık
Response.Redirect("panel.aspx");//Ve şifremiz değiştirildi :)
}
}
}

0 yorum:

Yorum Gönder