Hash fonksiyonları kullanım yeri olarak çoğunlukla şifrelerin veri tabanında tutulmasında, aynı zamanda büyük bir veride değişikliklerin olup olmamasında kullanılır. Hash fonksiyonları mantığı gereği veri üzerinde kullanılan algoritmaya göre işlem yapar ve bu algoritma sonucunda sabit uzunlukta sonuç üretir. Bu veriden tekrar orjinal veriyi elde etmek ideal algoritma için imkansız olmalıdır. Bu konuları daha iyi anlayabilmeniz için "Checksum Nedir? Kullanım Alanları Nelerdir?" ve "Hash Fonksiyonu Nedir? Hash Fonksiyonları ve Kullanım Alanları" makalelerine göz atmanızı tavsiye ederim. Bu makalemizde C# programlama dilindeki hash algoritmalarını inceleyeceğiz ve örneklere genel kullanım mantığını açıklayacağız.
C# programlama dilindi hash fonksiyonları System.Security.Cryptography isim uzayı altında yer alır ve bu isim uzayı altında bu dili kullananları için 6 algoritma ve bunların simetrik algoritmalarla birleştirilmiş versiyonları yer almaktadır. Bunlar MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512, HMACMD5, HMACRIPEMD160, HMACSHA1, HMACSHA256, HMACSHA384, HMACSHA512 algoritmalarıdır. Bu algoritmaların herbiri ayrı makalelerde incelenmiştir. Spesifik algoritmaların uygulaması için üzerine tıklayarak o makaleyele devam edebilirsiniz. Bu makaledeki temel amaç ise C# programlama dilinde yer alan hash algoritmalarının kullanımı ile ilgili genel bir fikir sahibi olmanızı sağlamaktır.
C# programlama dilindi hash fonksiyonları System.Security.Cryptography isim uzayı altında yer alır ve bu isim uzayı altında bu dili kullananları için 6 algoritma ve bunların simetrik algoritmalarla birleştirilmiş versiyonları yer almaktadır. Bunlar MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512, HMACMD5, HMACRIPEMD160, HMACSHA1, HMACSHA256, HMACSHA384, HMACSHA512 algoritmalarıdır. Bu algoritmaların herbiri ayrı makalelerde incelenmiştir. Spesifik algoritmaların uygulaması için üzerine tıklayarak o makaleyele devam edebilirsiniz. Bu makaledeki temel amaç ise C# programlama dilinde yer alan hash algoritmalarının kullanımı ile ilgili genel bir fikir sahibi olmanızı sağlamaktır.
C# programlama dilindeki bu hash algoritmlarının hepsi kendisine gönderilen byte dizisini girdi olarak alır. Eğer algoritma simetrik algoritma ile birleştirilmişse yani algoritma önünde HMAC sözü varsa o zaman nesne üretimi sırasında algoritmaya girdi olarak yine byte array olarak şifreyi de verebilirsiniz. Bu kısa bilgilerden sonra isterseniz C# programlama dilindeki hash algoritmalarının genel kullanımına bakalım. Konunun daha iyi anlaşılması açısından makalemde bir algoritmanın hem normal halini, hem de simetrik algoritma ile birleşmiş yani HMAC olan halini inceleyeceğiz. 6 hash algoritmasından en çok kullanılanlarından biri olan olan SHA256 algoritmasını bu makalemizde inceleyeceğiz. Diğer algoritmların da ayrıca uygulamalarına yukarıdaki linklerden bakabilirsiniz. Ama önemli olan nokta odur ki diğer algoritmaların da kullanımı bizim örnekte verdiğimiz algoritmaya çok benzerdir.
using (var sha256provider = new SHA256CryptoServiceProvider())
{
chiperText = mdp5provider.ComputeHash(plainText);
}
using (var sha256provider = new SHA256(password))
{
chiperText = mdp5provider.ComputeHash(plainText);
}
Görüldüğü gibi buradaki girdiler byte dizisi olarak direk algoritmaya verilmiş ve sonuç alınmıştır. Algoritmaya metin olarak girilen ve bunun sonucunun tekrar işlenerek string elde edildiği kodlar için yukarıda algoritmaların sıralandığı yerde istediğiniz algoritmaya tıklayarak erişebilirsiniz. Daha önce de dediğim gibi bu makalenin temel amacı sizi C# programlama dilindeki hash algoritmaları konusunda bilgilendirmek ve genel kullanımı ile ilgili bilgi sahibi yapmaktır. Detaylı anlatımlar ve algoritma uygulamaları için yukarıdaki linkleri takip edebilirsiniz...
Ayrıca konu ile alakalı size yardımcı olabileceğini düşündüğüm için buradan Microsoft tarafından sağlanan dokümanlara da erişebilirsiniz.
Konu ile alakalı sorularını olursa lütfen sormaktan çekinmeyin.En kısa sürede yanıtlamaya çalışacağım.
Yorumlar
Yorum Gönder