C# programlama dilinde bir çok hash algoritması ile birlikte RIPEMD160 algoritması bu dili kullananların hizmetine sunulmuştur. RIPEMD160 hash algoritmalarının projelerde kullanılabilmesi için projeye System.Security.Cryptography isim uzayının eklenmesi gerekiyor. Bu ekleme işlemi haricinde RIPEMD160 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 RIPEMD160 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 RIPEMD160'den bahsetmek istiyorum. RIPEMD160 hash algoritmalarından bir tanesidir. (Hash algoritmaları ile ilgili detaylı bilgi almak isterseniz buradaki makaleye göz atabilirsiniz) Algoritma sonucunda 160 bit veya 40 hexadecimal şifreli metin üretilir. Yani şifreleme sonucu SHA1 algoritma sonucu ile aynıdır. Hash algoritmasının mantığı gereği üretilen karakter uzunlukları her zaman 40 hexadecimal sayıdır.
C# programlama dilinde RIPEMD160 algoritmasının uygulanabilmesi için RIPEMD160Managed 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# RIPEMD160 Uygulaması
using System;
using System.Security.Cryptography;
using System.Text;
namespace Laitech.Core.Service.Common.Security
{
public class HashFunctions
{
public static string HashRIPEMD160(string plaintext)
{
using (var ripemd160managed = new RIPEMD160Managed())
{
var hash = ripemd160managed.ComputeHash(Encoding.UTF8.GetBytes(request.PlainText));
return BitConverter.ToString(hash).Replace("-", "");
}
}
}
}
Algoritmanın C# programlama dili için tanıtımından önce biraz RIPEMD160'den bahsetmek istiyorum. RIPEMD160 hash algoritmalarından bir tanesidir. (Hash algoritmaları ile ilgili detaylı bilgi almak isterseniz buradaki makaleye göz atabilirsiniz) Algoritma sonucunda 160 bit veya 40 hexadecimal şifreli metin üretilir. Yani şifreleme sonucu SHA1 algoritma sonucu ile aynıdır. Hash algoritmasının mantığı gereği üretilen karakter uzunlukları her zaman 40 hexadecimal sayıdır.
C# programlama dilinde RIPEMD160 algoritmasının uygulanabilmesi için RIPEMD160Managed 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# RIPEMD160 Uygulaması
using System;
using System.Security.Cryptography;
using System.Text;
namespace Laitech.Core.Service.Common.Security
{
public class HashFunctions
{
public static string HashRIPEMD160(string plaintext)
{
using (var ripemd160managed = new RIPEMD160Managed())
{
var hash = ripemd160managed.ComputeHash(Encoding.UTF8.GetBytes(request.PlainText));
return BitConverter.ToString(hash).Replace("-", "");
}
}
}
}
Son olarak RIPEMD160 algoritmasının performans açısından çok yavaş bir algoritma olduğunu da hatırlatmak isterim. Bunu diğer algoritmalara da süre ekleyerek kendiniz de test edebilirsiniz. Yani kritik uygulama süresinin gerektiği durumlarda kullanılmaması daha uygundur. Algoritma MD5 algoritmasının eksiklerini tamamlamak için geliştirilse de zamanla hantallığı(yavaş kalması) ve ürettiği metin boyutunun 40 karakterden ibaret olmasından dolayı çok kullanılmamaktadır.
Konu ile alakalı sorularınız olursa lütfen sormaktan çekinmeyin en kısa sürede yanıtlamaya çalışacağım.
Yorumlar
Yorum Gönder