28 Eylül 2009 Pazartesi

.NET ile MD5 Kullanarak Şifreleme İşlemi

String bir ifadenin MD5 ile şifrelenmesini ele alacağımız bir örneğimiz olacak. Bu işlemleri yaparken, System.Text ve System.Security.Cryptography namespace'i altındaki üyelerden faydalanacağız. Kullanacağımız sınıflar UTF8Encoding ve MD5CryptoServiceProvider olacak.

MD5, geri dönüşü olmayan algoritmalardan biri olan Hash Algoritması'nı kullanır. Hash Algoritması ile şifreleme yapacak olan method MD5CryptoServiceProvider sınıfı içerisindeki ComputeHash isimli methoddur. Bu method çalışmak için parametre olarak Stream ya da byte[] ister.

Bizim amacımız string bir değeri şifrelemek olduğu için, öncelikle elimizdeki string ifadeyi bir Stream ya da byte[] haline çevirmeliyiz. Ben byte[] kullanmayı tercih ediyorum. Bu işi gerçekleştirmek için UTF8Encoding sınıfının GetBytes isimli methodunu kullanacağız. Örnek kullanım aşağıda yer alıyor.

string deger = "www.ercanbozkurt.com"; //şifrelemek istediğimiz değer
UTF8Encoding encoder = new UTF8Encoding(); //GetBytes methodunu kullanabilmek için UTF8Encoding sınıfından bir nesne örneği alıyoruz.
byte[] sayisalDeger = encoder.GetBytes(deger); //Değeri GetBytes methoduna parametre olarak geçip sonucu byte[] tipinden bir değişkene alıyoruz.

String tipindeki değerimizi, byte[] olarak elde ettikten sonra sıra geldi şifreleme aşamasına. Örnek kullanım hemen alttaki satırda yer alıyor.

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); //MD5CryptoServiceProvider sınıfından bir nesne örneği alıyoruz.

byte[] sifreliDeger = md5.ComputeHash(sayisalDeger);  //ComputeHash methodunu kullanarak sayısal değeri şifreliyoruz.


Şifreli değer elde edildikten sonra SQL, Access ya da istediğimiz başka bir ortamda saklanabilir.

Hiç yorum yok: