C#

C# SHA256 Şifreleme

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde C# ile popüler kriptografik şifreleme algoritmalarından biri olan SHA256 şifrelemeyi anlatacağım. Hadi başlayalım !

C#’ta tüm kriptografik şifreleme algoritmaları System.Security.Cryptography kütüphanesi içerisinde bulunuyor ve bizimde projemize bu kütüphaneyi eklememiz gerekiyor.Bunun içinde sayfanın en başına

using System.Security.Cryptography;

kod satırını ekleyelim. Şimdide kullanıcıdan şifrelenecek metni isteyip bunu string bir değişkene atayalım;

Console.Write("Şifrelenecek Metni Girin: ");
string sifrelenecek = Console.ReadLine();

SHA256 şifreleyebilmek için SHA256Managed isimli sınıfın yeni bir nesnesini türetmemiz gerekiyor.

SHA256Managed sha256 = new SHA256Managed();

Şimdi geldik şifreleme işlemine..

Şifreleme yapabilmek için az önce türettiğimiz sha256 nesnesinin ComputeHash() fonksiyonunu kullanacağız ve bu fonksiyonda parametre olarak byte dizisi (byte[]) istiyor fakat bizim elimizde string veri var, e napıcaz ? Tabiki string veriyi byte dizisine çevireceğiz. Bunu da System.Text kütüphanesi altında bulunan Encoding sınıfının UTF8 özelliğinin altında bulunan static tipteki, yani bulunduğu sınıfın yeni bir nesnesinin türetilmediği GetBytes() fonksiyonunu kullanarak yapacağız. Hadi yapalım;

byte[] bitDizisi = System.Text.Encoding.UTF8.GetBytes(sifrelenecek);

Şimdi artık ComputeHash() fonksiyonunu kullanabiliriz. Fakat şifreleme sonucunda bize tekrardan byte dizisi dönüyor ama kullanıcıya şifreli veri olarak byte dizisi verirsek, bu ne la diyebilir (çok yüksek ihtimalle diyecektir :), o yüzden bizim bunu tekrardan string tipine dönüştürmemiz gerekiyor. Zaten byte dizisinden bilgisayardan başka kimse bişey anlamaz fakat string tipe dönüştürürsek herkes anlar 🙂

Byte dizisinden string tipine dönüştürmek içinde System kütüphanesi altında bulunan Convert sınıfının static tipteki ToBase64String() fonksiyonunu kullanacağız ve bu fonksiyon parametre olarak (tabiki) byte dizisi istiyor. Ki zaten biz ComputeHash() fonksiyonu sonucunda byte dizisi elde edecektik. Şifrelenmiş veriyi ToBase64String() fonksiyonuna göndermemiz yeterli olacaktır.

string sifreliVeri = Convert.ToBase64String(sha256.ComputeHash(bitDizisi));

Vee artık son olarak kullanıcıya şifreli metni gösterebiliriz.

Console.WriteLine("Girdiğiniz Metnin Şifreli Hali: " + sifreliVeri);

Evet tüm işlemler bu kadar. Bu kadar yazdığımız kod ile artık SHA1 şifreleme yapabilirsiniz. Bu dersimizde bu kadardı, yazdığımız kodları aşağıya bırakıyorum;

Console.Write("Şifrelenecek Metni Girin: ");
string sifrelenecek = Console.ReadLine();
SHA256Managed sha256 = new SHA256Managed();
byte[] bitDizisi = System.Text.Encoding.UTF8.GetBytes(sifrelenecek);
string sifreliVeri = Convert.ToBase64String(sha256.ComputeHash(bitDizisi));
Console.WriteLine("Girdiğiniz Metnin Şifreli Hali: " + sifreliVeri);

Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 1 Ortalama: 5]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu