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.
Bu güzel makale için teşekkür ederim çok işime yaradı, devamının gelmesi dileğimle…
Poli şifrelemeyi biliyormusunuz bu anlattıgınız sekılde olucak
Mono ve poli şifreleme ile ilgili ayrıntılı bilgi için http://kriptoloji.net/basit-sifreleme-teknikleri adresini ziyaret edebilirsiniz