C# ile Md5 Şifreleme

Bu yazımda MD5 algoritmasına kısaca değindikten sonra, C# ile bir md5 şifreleme uygulaması hazırlayacağım. Md5 aslında bir şifreleme algoritması değildir. Tasarlanma amacı dosya ve verilerin hash’ini -parmak izini- çıkarmaktır. Yani siz ister tek bir kelimeyi, isterseniz de 5 gb büyüklüğünde bir veriyi md5 ile şifreleyin sonuç olarak 128 bit uzunluğunda bir değer üretilir.

Md5 algoritması tek yönlü çalışan bir şifreleme tekniğidir. Yani şifrelenen veriye decrypt yapılarak verinin ilk haline ulaşmak mümkün değildir.

MD5 Şifreleme Nerelerde Kullanılır?

  • İnternetten indirdiğiniz bir cd/dvd imajıyla birlikte genellikle birde Md5 hash değeri verilir. Bu şekilde dosyanın sorunsuz inip inmediği kontrol edilebilir.
  • İki tane verinin içeriğine bakmadan aynı olup olmadığı karşılaştırılabilir.
  • Veritabanı ki şifre alanları şifrelenerek saklanabilir.
  • Büyük veritabanlarında çeşitli matematiksel hesaplamalarla verinin bulunduğu konum tespit edilebilir.

MD5 şifreleme yapılarak saklanan şifreleri şu an için tek bulma yolu brute force saldırılardır. Özellikle şifre gibi küçük veriler bu yöntemle kolaylıkla bulunabilmektedir.

C# ile Verinin MD5 Algoritması Kullanarak Şifrelenmesi

Öncelikle şifreleme algoritmalarını kullanmak için projenize aşağıdaki namespace’i eklemeyi unutmayın.

Şifrelenecek metini parametre olarak alan Md5Sifreleme metodunu aşağıdaki gibi oluşturalım. Gerekli açıklamaları kodların arasına ekledim.

public static string MD5Sifrele(string sifrelenecekMetin) {

// MD5CryptoServiceProvider sınıfının bir örneğini oluşturduk.
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
//Parametre olarak gelen veriyi byte dizisine dönüştürdük.
byte[] dizi = Encoding.UTF8.GetBytes(sifrelenecekMetin);
//dizinin hash’ini hesaplattık.
dizi = md5.ComputeHash(dizi);
//Hashlenmiş verileri depolamak için StringBuilder nesnesi oluşturduk.
StringBuilder sb = new StringBuilder();
//Her byte’i dizi içerisinden alarak string türüne dönüştürdük.

foreach (byte ba in dizi) {
sb.Append(ba.ToString("x2").ToLower());
}

//hexadecimal(onaltılık) stringi geri döndürdük.
return sb.ToString(); }

}

C# ile Md5 şifreleme yapan kodlar bu kadar. Hiçbir algoritma veya hesaplama yapmanıza gerek kalmadan C# daki hazır sınıfları kullanarak işimizi hallettik. İsterseniz Main metodundan yukarıda oluşturduğumuz metodu çağırarak bir deneme yapabilirsiniz.

static void Main(string[] args)
        {
            string sifre = MD5Sifrele(“kutlay”);
            Console.Write(sifre);
            Console.ReadKey();
        }

Hakan BAYRAM

Gönlünü Yazılıma kaptırmış biri, Hobi olarak başladığı Kodlamaya profesyonellik katarak ilerleyen Hakan BAYRAM, 1986 izmir doğumlu.

You may also like...

%d blogcu bunu beğendi: