Merhaba arkadaşlar bu yazımda sizlerle winform üzerinde MD5 kodlama ve çözme işlemi nasıl yapılır onu anlatmaya çalışacağım. Bu kodlama daha çok üye giriş sistemlerinde kullanıcıların şifrelerini veritabanında şifreli bir şekilde saklamak için kullanılır. Global bir değişken tanımlandığı içinde çözmesi uzun sürmektedir.
Hemen formumuza gelerek kodlamaya başlayalım isterseniz.
Öncelikle formumuza txtsifresiz, txtsifreli, txtcozulmus adında 3 adet textbox ve 2 adet buton ekliyoruz.
Öncelikle şifrele kodlarından bahsedelim. Şifrele butonuna çift tıklayarak kod bölümüne geçiyoruz.
Ardından ilgili kütüphaneyi projemizin kod sayfasının en üstüne yerleştiriyoruz.
1 |
using System.Security.Cryptography; |
Daha sonra ise global bir değişken tanımlıyoruz.
1 |
private string hash = "www.emrekoyuncu.net"; |
Ardından şifrele butonunun click olayına aşağıdaki kodları yazıyoruz.
1 2 3 4 5 6 7 8 9 10 11 |
byte[] data = UTF8Encoding.UTF8.GetBytes(txtsifresiz.Text); using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) { byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash)); using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }) { ICryptoTransform transform = tripDes.CreateEncryptor(); byte[] results = transform.TransformFinalBlock(data, 0, data.Length); txtsifreli.Text = Convert.ToBase64String(results, 0, results.Length); } } |
Ve daha sonra şifrelediğimiz kodu çözmek için Çöz butonunun click olayına aşağıdaki kodu yazıyoruz.
1 2 3 4 5 6 7 8 9 10 11 |
byte[] data = Convert.FromBase64String(txtsifreli.Text); using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) { byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash)); using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }) { ICryptoTransform transform = tripDes.CreateDecryptor(); byte[] results = transform.TransformFinalBlock(data, 0, data.Length); txtcozulmus.Text = UTF8Encoding.UTF8.GetString(results); } } |
Ardından projemizi build yaparak sonuca bakıyoruz.
Herkese iyi kodlamalar…
Her formun kod kısmında
public Deneme()
{
InitializeComponent();
} tarzında bir kısım vardır. Hemen onun altına ekleyebilirsin.
abi eyvallah adamsın valla çok işime yaradı ama hash ın ne işe yaradığını anlamadım.
hash, vericeğiniz özel kodlama biçimi, mesela siz oraya ergün yazarsanız “ergün” ile şifrelediğiniz veriyi tekrar açarken “ergün” hash ini vermeniz gerekiyor. Bu sayede herhangi bi basit md5 şifre açıcı gelip sizin şifrelenmiş verinizi açamıyor çünkü hash key inizi bilmiyor.
Merhaba hocam. C# programımda sizin kodlarla şifrelediğim bi şifreyi php ile açmam gerekiyor. Senkronize çalışması için. Php tarafında nasıl bi kod yazmam lazım çözmek için. Kendi şifrelediğim şifreler olduğu için hash i biliyorum.