Örnekler İle C# Geliştirme - Bölüm 12

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
a3b2jeo.png


Giriş

Merhaba, C# uygulama geliştirme serimizin on ikinci yazısına hoş geldiniz.

Önceki yazımızda hash tür bulucu yapmıştık.
Bugünde bu hashleri oluşturmak için bir hash oluşturucu yapacağız.

Serinin önceki yazılarını okumak isteyenler için

Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
Örnekler İle C# Geliştirme - Bölüm 7
Örnekler İle C# Geliştirme - Bölüm 8
Örnekler İle C# Geliştirme - Bölüm 9
Örnekler İle C# Geliştirme - Bölüm 10

Örnekler İle C# Geliştirme - Bölüm 11

İyi okumalar dilerim!


Yapılış


cs11-1.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Hash Oluşturucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

cs11-2.png


Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Hash Oluşturucu' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.

3 Label
2 TextBox
4 RadioButton
1 Button​

Evet, tasarımımız bitti.
Şimdi gerekli kütüphanelerimizi ekleyelim.
Bu kütüphanelerimiz zaten yüklü geldiği için Nuget paket yöneticisinden eklememize gerek yok.
Direkt aşağıdaki şekilde projeye ekleyebilirsiniz.

C#:
using System.Security.Cryptography;
using System.Text;

Kütüphanemizi ekledikten sonra ise diğer kodlarımıza geçebiliriz.


C#:
private void button1_Click(object sender, EventArgs e)
{
    string Metin = textBox1.Text;
    // Burada Metin adında bir değişken oluşturuyoruz ve textBox1 içindeki değeri Metin değişkenine aktarıyoruz.
    
    if (radioButton2.Checked) // MD5 olan radioButton checked (seçili) ise bu çalışacak.
    {
        string md5Hash = MD5HashAl(Metin);
        textBox2.Text = md5Hash;
        // Burada MD5HashAl içinden dönen değeri alıyoruz ve textbox2 içine yazdırıyoruz.
    }
    else if (radioButton3.Checked) // SHA1 olan radioButton checked (seçili) ise bu çalışacak.
    {
        string sha1Hash = SHA1HashAl(Metin);
        textBox2.Text = sha1Hash;
        // Burada SHA1HashAl içinden dönen değeri alıyoruz ve textbox2 içine yazdırıyoruz.
    }
    else if (radioButton4.Checked) // SHA256 olan radioButton checked (seçili) ise bu çalışacak.
    {
        string sha256Hash = SHA256HashAl(Metin);
        textBox2.Text = sha256Hash;
        // Burada SHA256HashAl içinden dönen değeri alıyoruz ve textbox2 içine yazdırıyoruz.
    }
}

static string MD5HashAl(string input)
{
    using (MD5 md5 = MD5.Create()) // MD5 hash algoritmasını oluşturuyoruz.
    {
        byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        // Metnimizi UTF-8 kodlamasına dönüştürüyoruz.

        byte[] hashBytes = md5.ComputeHash(inputBytes);
        // Hash hesaplaması yapıyoruz.

        return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
        // Hash byte'larını hexadecimal biçimde string'e dönüştürüyoruz ve "-" karakterlerini kaldırıp, küçük harfe dönüştürüyoruz.
    }
}

static string SHA1HashAl(string input)
{
    using (SHA1 sha1 = SHA1.Create()) // SHA1 hash algoritmasını oluşturuyoruz.
    {
        byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        // Metnimizi UTF-8 kodlamasına dönüştürüyoruz.

        byte[] hashBytes = sha1.ComputeHash(inputBytes);
        // Hash hesaplaması yapıyoruz.

        return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
        // Hash byte'larını hexadecimal biçimde string'e dönüştürüyoruz ve "-" karakterlerini kaldırıp, küçük harfe dönüştürüyoruz.
    }
}

static string SHA256HashAl(string input)
{
    using (SHA256 sha256 = SHA256.Create()) // SHA256 hash algoritmasını oluşturuyoruz.
    {
        byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        // Metnimizi UTF-8 kodlamasına dönüştürüyoruz.

        byte[] hashBytes = sha256.ComputeHash(inputBytes);
        // Hash hesaplaması yapıyoruz.

        return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
        // Hash byte'larını hexadecimal biçimde string'e dönüştürüyoruz ve "-" karakterlerini kaldırıp, küçük harfe dönüştürüyoruz.
    }
}

Sonuç

Evet, işlemimiz genel olarak bu kadardı.
Not: Anlattıklarımın dışında ilk başta bir radioButton'a checked vermeniz ve textBox2'i readonly yapmanız iyi olur.

Şimdi de testimizi yapalım.

cs11-4.png


cs11-5.png


cs11-3.png


Gördüğünüz gibi programımız başarılı bir şekilde hash dönüştürme işlemini yapıyor.

Kapanış

Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekteki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.