Merhabalar.Bugün sizlere kendi projemde kullanmayı düşündüğüm istemci taraflı şifreleme yönteminden bahsedeceğim.Bu yöntemle istemci tarafında kullanıcı adı ve şifresini MD5 ile şifreleyerek PageMethod ile sunucuda kolaylıkla karşılaştırma yapabilirsiniz.Öncelikle şifrelemeyi yapabilmemiz için gerekli MD5 javascript kütüphanesini download etmelisiniz.İndirdiğiniz javascript dosyasını projemize import ettikten sonra sayfamıza iki tane textbox ve bir tane de html buton koyalım.Butonumuzun click olayına da şifreleme işlemini yapması ve kontrol etmesi için yazacağımız KontrolEt fonksiyonunu ekliyoruz.
<asp:TextBox ID="TextBox1"runat="server"></asp:TextBox><br/>
<asp:TextBox ID="Şifre" runat="server"></asp:TextBox><br/>
<input id="gonder" type="button" value="Gönder" onclick="KontrolEt();"/>
MD5 javascript kütüphanesini kullanabilmek için sayfamıza referans olarak eklemeyi unutmamalıyız.Referansımızı ekledikten sonra gelelim javascript fonksiyonunu yazmaya.
<script type="text/javascript" language="javascript">
function KontrolEt() {
var pass = $get("Şifre").value;
var md5 = hex_md5(pass);
PageMethods.GirisKontrol(md5,Sonuc);
}
function Sonuc(sender) {
alert(sender);
}
</script>
GirisKontrol fonksiyonu ile şifrelemiş olduğumuz verileri sunucudaki bir metod ile kontrol edip metodun döndürdüğü değeri Sonuc adındaki fonksiyonun parametresine gönderir.Yani GirisKontrol bizim sunucudaki bir metodumuzdur.Gelen sonuca göre istediğiniz işlemleri yapabilirsiniz.Bizim sunucudaki metodumuzun geri dönüş tipi boolean olduğu için true ya da false değerinde ekrana uyarı verecektir.Tabiki sunucudaki metodumuzu çalıştırabilmemiz için önce EnablePageMethods özelliğinin True olması gerekiyor.
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
<Scripts>
<asp:ScriptReference Path="md5.js" />
</Scripts>
</asp:ScriptManager>
Şimdi biraz da sunucu tarafında kod yazalım.İlk yapmamız gereken MD5 şifrelemeyi kullanabilmek için System.Security.Cryptography isim uzayını eklememiz gerekli.GirisKontrol metodumun da PageMethod olması için başına [System.Web.Services.WebMethod()] koymak yeterli olacaktır.
GirisKontrol metodumuz da aşağıdaki gibi tanımlıyoruz.
[System.Web.Services.WebMethod()]
public static bool GirisKontrol(string sifre)
{
UTF8Encoding encoder = new UTF8Encoding();
StringBuilder sb = new StringBuilder();
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
Byte[] gercekSifre=MD5.ComputeHash(encoder.GetBytes("1234"));
for (int i = 0; i < gercekSifre.Length; i++)
{
sb.Append(gercekSifre[i].ToString("x2"));
}
if (sifre==sb.ToString())
return true;
else
return false;
}
GirisKontrol metoduna parametre olarak gelen şifrelenmiş veriyi kendi gerçek verimizi de MD5 ile şifreleyerek karşılaştırıp geriye sonuç döndürüyoruz.Örnek demoyu linkten indirebilirsiniz.Teşekkürler.
MD5Demo.rar (5,32 kb)