Blog Arşivi

1 Aralık 2011 Perşembe

C# ile Caesar Şifreleme Tekniği

namespace WinSezarSifreleme
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            char[] normal = richTextBox1.Text.ToCharArray();
            for (int i = 0; i < normal.Length; i++)
            {
                int asil = (int)normal[i];
                int asciiKarsilik = asil + 3;
                richTextBox2.Text += ((char)asciiKarsilik).ToString();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}
Caesar Şifresi Nedir?

kriptografide kirilmasi kolay sifrelerden biri. adindan da anlasilacagi 
uzerine caesar icat etmis bu sifreyi. yontemi sadece harf kaydirmaktan 
ibarettir. ornegin; alfabe normalde a,b,c,d.. diye devam eder. bu 
sifrede, alfabeyi atiyorum "e" harfinden baslattigimiz dusunulurse, a=e ,
 b=f , c=g.. diye devam eder.

Kodlama Mantığı;

Uygulamamız oldukça basit iki adet richTextBox ve bir Buton 
ile Formumuzu dizayn ediyoruz.

Sonra normal adında char veri tipinde bir dizi değişken tanımlayıp, 
kullanıcının girmiş olduğu veriyi bu değişkende diziler halinde 
tutuyoruz.

sonra bir for döngüsü kuruyoruz ve bu döngü 0 dan başlayarak 
"normal.Length" ile aldığımız kullanıcının girmiş olduğu harf sayısı 
kadar dönmesini sağlayıp bir artırıyoruz. Bizim girmiş olduğumuz 
Karakterler bilgisayar için anlamsız olduğundan bunları ascii ye 
çevirebilmek için int asil = (int)normal[i]; tanımlayarak bir tip 
dönüşümü yapıyoruz. Evet geldik en heyecanlı noktaya; 

int asciiKarsilik = asil + 3; burada ise girdiğimiz kelimeyi 3 harf ötesine 
götürebilmek için asil ismini verdiğimiz değişkeni 3 artırıp 
richTextBox2 ye basıyoruz. 

kaynak: http://en.wikipedia.org/wiki/Caesar_cipher

1 yorum:

  1. Paylaşım için teşekkürler.

    Fakat şöyle bir durum var: kişi "z" girerse ascii koduna göre "}" yazıyor.
    Kodları bir kere daha gözden geçirip z görünce tekrar a'ya dönen ve
    bu şekilde devam eden program yapılırsa daha iyi olabilir.

    Buna da ek olarak sırf Türkçe karakterler için olan bir versiyon yapılabilir mi acaba?

    YanıtlaSil