Ana içeriğe atla

C# Programlama Dilinde SHA512 Hash Algoritması VE Uygulama Örneği

SHA512 Hash Algoritması
C# programlama dilinde bir çok hash algoritması ile birlikte SHA512 algoritması bu dili kullananların hizmetine sunulmuştur. SHA512 hash algoritmalarının projelerde kullanılabilmesi için projeye System.Security.Cryptography isim uzayının eklenmesi gerekiyor. Bu ekleme işlemi haricinde SHA512 algoritmasında bitler düzeyinde işlem yaptığı için ilk önce hash algoritması uygulanacak metnin byte dizisine dönüştürülmesi gerekiyor. Bu işlemden sonra elde ettiğiniz şifreli metin üzerinde de Replace işlemi yapacağız. Burada çok önemli bir nokta vardır ki SHA512 algoritması algoritmayı uygularken byte dizisi üzerinde işlem yaptığı için her türlü elektronik veri bu algoritma kullanılarak hashlene bilir.
Algoritmanın C# programlama dili için tanıtımından önce biraz SHA512'den bahsetmek istiyorum. SHA512 hash algoritmalarından bir tanesidir. (Hash algoritmaları ile ilgili detaylı bilgi almak isterseniz buradaki makaleye göz atabilirsiniz) Algoritma sonucunda 512 bit veya 128 hexadecimal şifreli metin üretilir. Hash algoritmasının mantığı gereği üretilen karakter uzunlukları her zaman 128 hexadecimal sayıdır. 
C# programlama dilinde SHA512 algoritmasının uygulanabilmesi için SHA512CryptoServiceProvider sınıfından yeni bir nesne üretmek ve bu sınıfın ComputeHash metodunu kullanmak gerekiyor. Bu uygulamanın yapıldığı örnek aşağıda yer almaktadır. Son yaptığımız replace işlemi ise algoritma çıktısındaki "-" karakerini atmak içindir.

C# SHA512 Uygulaması

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

namespace Laitech.Core.Service.Common.Security
{
    public class HashFunctions
    {
        public static string HashSHA512(string plaintext)
        {
            using (var sha512provider = new SHA512CryptoServiceProvider())
            {
                var hash = sha512provider.ComputeHash(Encoding.UTF8.GetBytes(plaintext));
                return BitConverter.ToString(hash).Replace("-", "");
            }
        }

    }
}

Konu ile alakalı sorularınız olursa lütfen sormaktan çekinmeyin en kısa sürede yanıtlamaya çalışacağım.

Yorumlar