Etiket arşivi: kripto

C# ile Dosyalama ve Şifreleme Örneği

Uzun zamandır programlama örneği vermiyordum. Bu yazımızın konusu yarın yapacağım sınav öncesinde öğrencilerime pratik olsun diye hazırlattığım bir uygulama.

Soru:Bir Metin (text) dosyası içerisine yazılanları şifreli olarak saklayacak ve o metin dosyası, yazacağımız program dışında başka herhangi bir metin editörü ile açıldığında şifreli olarak görüntülenecektir. Yazının şifrelenmemiş halini ancak kendi yazdığımız program ile görüntüleyebileceğiz.

İşlem Basamakları:

1)Form üzerine 1 Label, 1 TextBox, 2 Button, 1 OpenFileDialog ve son olarak da 1 SaveFileDialog elemanlarını aşağıdaki şekildeki gibi form üzerine yerleştiriyoruz.

2)Nesnelere aşağıdaki özellikleri tanımlıyoruz;

  • Label1.Text = “Metin İçeriği:”
  • button1.Text = “Kaydet”
  • button2.Text = “Aç”
  • saveFileDialog1.Filter = “Metin Dosyası (*.txt)|*.txt”
  • openFileDialog1.Filter = “Metin Dosyası (*.txt)|*.txt”

3) sifrele ve sifreCoz isimli 2 adet metot oluşturuyoruz.

[sourcecode language=”csharp”]private string sifrele(string icerik)
{
string sifrelenmisi = "";
foreach (char harf in icerik)
{
sifrelenmisi += Convert.ToChar(harf+2);
}
return sifrelenmisi;
}[/sourcecode]

 

[sourcecode language=”csharp”]private string sifreCoz(string sifreliIcerik)
{
string cozulmusIcerik = "";
foreach (char harf in sifreliIcerik)
{
cozulmusIcerik += Convert.ToChar(harf – 2);
}
return cozulmusIcerik;
}[/sourcecode]

4) button1 tıklandığında;

[sourcecode language=”csharp”]saveFileDialog1.Filter = "Metin Dosyası (*.txt)|*.txt";
saveFileDialog1.ShowDialog();
string yol=saveFileDialog1.FileName;
File.CreateText(yol).Close();
string icerik = textBox1.Text;
string yeniIcerik = sifrele(icerik);
File.WriteAllText(yol, yeniIcerik);
MessageBox.Show("Kayıt İşlemi Gerçekleştirildi");
textBox1.Clear();[/sourcecode]

  5) button2 tıklandığında;

[sourcecode language=”csharp”]openFileDialog1.ShowDialog();
string yol = openFileDialog1.FileName;
string sifreliIcerik = File.ReadAllText(yol);
string yeniIcerik = sifreCoz(sifreliIcerik);
textBox1.Text = yeniIcerik;[/sourcecode]

komutlarını yazıyoruz.

Şifreleme işleminde parametre olarak gönderilen metinsel (string) ifadeyi, karakter karakter okutup, ilgili karakteri, kendisinden 2 karakter sonra gelen karakter ile değiştirme yöntemiyle metnimizi şifreliyoruz. (Örneğin a=c,b=d,c=e…)

Şifre çözme işleminde de şifreleme işleminde yaptığımız işlemin tam tersini yapıp, gelen karakteri, kendisinden 2 karakter önce gelen karakter ile değiştirerek kullanıyoruz.

Programa ait çalışma anı görselleri için aşağıdaki ekran görüntülerini inceleyebilirsiniz.