Aşağıdaki kodları da kısaca açıklayacak olursak şifrelenecek metni giriyoruz ve sonuç olarak bize MD5 algoritması ile şifreleyerek sonucu veriyor. Hazır metot halinde yazdım. Bu fonksiyonu alarak direk projenize ekleyebilirsiniz. Fonksiyonu kütüphane halinde yazdığım için static olarak yazdım.
using System;
using System.Security.Cryptography;
using System.Text;
namespace Laitech.Core.Service.Common.Security
{
public class HashFunctions
{
public static string HashMD5(string plaintext)
{
using (var mdp5provider = new MD5CryptoServiceProvider())
{
var hash = mdp5provider.ComputeHash(Encoding.UTF8.GetBytes(plaintext));
return BitConverter.ToString(hash).Replace("-", "");
}
}
}
}
Bu arada önemli olduğu için bu konuyu da sizinle paylaşmak istiyorum. MD5 algoritmasının güvensiz olmasının 2 nedeni vardır. Bunlardan birincisi ürettiği metnin karakter uzunluğudur. MD5 algoritması ile üretilen metin 128 bit, yani 32 hexadecimal sayıdan oluştuğu için kolayca maping yapılarak tüm olasılıklar ortaya koyulmuştur. Yani hash fonksiyonlarının temel mantığı olan şifrelendikten sonra elde edilemeyen veya elde edilmesi çok zaman alan veriye dönüştürmesi çok zaman almalı iken MD5 algoritması ile şifrelenmiş bir metinin geri elde edilmesi kişisel bilgisayarlarda bile saatler alabilir. İşte bu yüzden güvensiz algoritma kategorisindedir...
Hash Fonksiyonları için yazdığım makaleye buradan erişebilirsiniz...
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