C# ile Hash İşlemleri(MD5,SHA1,SHA512)

Merhaba kısaca C# ile hashleme işlemini nasıl gerçekleştirebileceğinizi anlatmaya/örneklendirmeye çalışacağım. .Net Framework üzerinde bulunan System.Security.Cryptography namespace'i hashleme işlemlerini kolayca yapabilmemiz için üzerinde gerekli servisleri barındırır. biz de bunları kullanarak şifreleme işlemlerimizi gerçekleştireceğiz. Kullanabileceğimiz algoritmaların bazıları;

MD5128 bit şifreleyici kullanır 33 karakter uzunluğundadır.
SHA1160 bit şifreleyici kullanır 41 karakter uzunluğundadır.
SHA256256 bit şifreleyici kullanır 64 karakter uzunluğundadır.
SHA512512 bit şifreleyici kullanır 128 karakter uzunluğundadır. 

Öncelikle algoritmamızı oluşturalım, ben örnekte şifreleme işlemlerimizi gerçekleştirecek algoritmayı genişletilmiş metod olarak oluşturacağım ki projenin her yerinde rahatça kullanalım. ExtensionMethods adında static bir class oluşturup içerisine de şifrelenmiş stringimizi dönderecek metodumuzu oluşturdum. Metodumuz hashType adında string bir değişken alıyor ve kodlarda da görebileceğiniz gibi şifreleme algoritmasını o değişken yardımıyla değiştirebiliyoruz.

using System;
using System.Security.Cryptography;
using System.Text;

public static class ExtensionMethods
{
    public static string GetHashedString(this string s, string hashType = "SHA512")
    {
        HashAlgorithm algorithm;
        switch (hashType.ToUpper())
        {
            case "MD5":
                algorithm = MD5.Create();
                break;
            case "SHA1":
                algorithm = SHA1.Create();
                break;
            case "SHA256":
                algorithm = SHA256.Create();
                break;
            case "SHA512":
                algorithm = SHA512.Create();
                break;
            default:
                throw new ArgumentException("Hash Tipi Hatalı.", "hashType");
        }
        byte[] bytes = Encoding.UTF8.GetBytes(s);
        byte[] hash = algorithm.ComputeHash(bytes);
        StringBuilder hashedString = new StringBuilder();
        foreach (byte b in hash) hashedString.Append(String.Format("{0:x2}", b));
        return hashedString.ToString().ToUpperInvariant();
    }
}

Şifrelenmiş string dönderen algoritmamızı projemizde şu şekilde kullanabiliriz; string hashedPass = txtGelenVeri.GetHashedPassword(); default olarak SHA512'ile şifreleme yapacaktır fakat isterseniz metoda parametre ile hashType göndererek farklı algoritmalardan da yararlanabilirsiniz. Örn: txtGelenVeri.GetHashedPassword("SHA1"); 

Faydalı olması ümidiyle, kolay gelsin hepinize (: 

Sosyal Ağlarda Paylaşın

Share on Tumblr

Facebook Yorumları


Yorumlar (0)

Henüz hiç yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yapın