Sezar şifreleme algoritması c#

Haktan AKDAĞ
2 min readNov 4, 2023

Merhaba arkadaşlar internet üzerinde sezar şifreleme algoritması ile ilgili kaynak arattığımda genel olarak teorik bilgiye rastladım. Ayrıca yazılan online sezar şifre çözücü uygulamalarda da bizim alfabemize uygun çözümler uygulanmıyor.

Size bu yazıda söz konusu konuyu teorik olarak anlatmayacağım, bizim alfabemize göre yazılmış algoritmayı c# dilinde kodları ile birlikte paylaşacağım.

Öncelikle alfabemizi yazmalıyız, burada benim aklıma şöyle birşey geldi. Alfabenin bazı harflerini kaldırırsanız ve frekansı ona göre belirlerseniz şifre çözücü sistem aynı algoritmayı yazsa bile hangi harfi kaldırdığınızı bilemeyeceğinden ortaya çıkartılacak metni çözemezler. Tabiki bu kondisyonu 29 kere deneyecekleri için muhtemelen bulunacaktır.

Şifreleme algoritmalarını derste anlatmak isteyen hocalar bu aşağıdaki algoritmayı kullanabilirler.

public static char[] alfabe = { 'a','b','c','ç', 'd','e','f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'ö', 'p', 'r', 's', 'ş', 't', 'u', 'ü', 'v', 'y', 'z'};

Şifreleme algoritmasının methodu

static void encryption()
{
Console.Write("Sifrenlenmek istenen metin : ");
string acikMetin = Console.ReadLine();

Console.Write("Sifreli Metin : ");
char temp;
foreach (char c in acikMetin.ToLower())
{
temp = c;
for (int i = 0; i < 29; i++)
{
if (c == alfabe[i])
{
temp = alfabe[(i + 3) % 29];
}
}
Console.Write(temp);

}
Console.ReadLine();

}

Şifre çözme algoritmasının methodu :

static void decryption()
{
Console.Write("Cozulmek istenen metin : ");
string sifreliMetin = Console.ReadLine();

Console.Write("Acık Metin : ");
char temp;
foreach (char c in sifreliMetin.ToLower())
{
temp = c;
for (int i = 0; i < 29; i++)
{
if (c == alfabe[i])
{
temp = alfabe[((i - 9) + 29) % 29];
}
}
Console.Write(temp);
}
Console.ReadLine();
}

Şifre çözücüyü çağırmak için aşağıdaki kodu çalıştırmanız yeterli olacaktır.

decryption();

3 frekansına göre şifrelediğimiz metni tekrar geri yapıştırıp şifre çözdürme işlemi yaptığımızda aşağıdaki çıktıyı vermektedir.

--

--