C#

C# Sezar Şifreleme

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Sezar şifrelemeyi anlatacağım. Hadi başlayalım !

Sezar Şifrelemesi Nedir?

Sezar şifrelemesi, adını Romalı general Sezar’dan alan basit bir şifreleme yöntemidir. Bu yöntemde, açık metindeki her harf, belirli bir sayıda kaydırılarak şifrelenir. Bu kaydırma sayısı, Sezar şifresinin anahtarı olarak kullanılır. Örneğin, bir metnin Sezar şifrelemesi anahtarı 3 ise, her harf 3 karakter kaydırılarak şifrelenir.

Örneğin, “HELLO WORLD” ifadesinin Sezar şifrelemesi anahtarı 3 ise, şifreli metin “KHOOR ZRUOG” olacaktır. Bu şifreli metin, orijinal metindeki her harfin 3 karakter ilerisindeki harfe karşılık gelir.

Sezar Şifrelemesi Nasıl Yapılır?

C# programlama dilinde Sezar şifrelemesi, ASCII karakter kodlarına dayanan bir dizi işlem ile yapılır. İlk olarak, şifrelenecek metnin her bir karakteri ASCII karakter koduna dönüştürülür. Daha sonra, Sezar şifreleme anahtarı ile bu ASCII kodu kaydırılır. Son olarak, kaydırılmış ASCII kodu tekrar karaktere dönüştürülür ve şifreli metin oluşturulur.

Aşağıda, C# programlama dilinde Sezar şifrelemesi için bir örnek verilmiştir:

static string Encrypt(string plainText, int key)
{
    string result = "";
    for (int i = 0; i < plainText.Length; i++)
    {
        char ch = plainText[i];
        if (char.IsLetter(ch))
        {
            char d = char.IsUpper(ch) ? 'A' : 'a';
            result += (char)((((ch + key) - d) % 26) + d);
        }
        else
        {
            result += ch;
        }
    }
    return result;
}

static string Decrypt(string cipherText, int key)
{
    return Encrypt(cipherText, 26 - key);
}

Yukarıdaki örnekte, Encrypt() metodu, açık metni Sezar şifrelemesi kullanarak şifreleyen bir metottur. Decrypt() metodu ise, şifreli metni orijinal açık metne dönüştürmek için kullanılan bir metottur.

Encrypt() metodu, iki parametre alır: açık metin ve şifreleme anahtarı. Bu yöntem, önce her bir karakterin ASCII karakter kodunu alır ve daha sonra kaydırır. Son olarak, kaydırılmış ASCII kodları tekrar karaktere dönüştürülerek şifreli metin oluşturulur.

Decrypt() metodu, Encrypt() metodu ile aynıdır ancak şifreleme anahtarı değeri farklıdır. Şifreli metni çözmek için, şifreleme anahtarı yerine 26 – şifreleme anahtarı kullanılır.

Sezar Şifrelemesi Örneği

Aşağıdaki örnekte, Sezar şifreleme yöntemi kullanılarak verilen metin şifrelenir ve sonra tekrar çözülür:

using System;

namespace SezarEncryption
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "HELLO WORLD";
            int key = 3;

            Console.WriteLine("Original Text: " + text);

            string encryptedText = Encrypt(text, key);
            Console.WriteLine("Encrypted Text: " + encryptedText);

            string decryptedText = Decrypt(encryptedText, key);
            Console.WriteLine("Decrypted Text: " + decryptedText);

            Console.ReadKey();
        }

        static string Encrypt(string plainText, int key)
        {
            string result = "";
            for (int i = 0; i < plainText.Length; i++)
            {
                char ch = plainText[i];
                if (char.IsLetter(ch))
                {
                    char d = char.IsUpper(ch) ? 'A' : 'a';
                    result += (char)((((ch + key) - d) % 26) + d);
                }
                else
                {
                    result += ch;
                }
            }
            return result;
        }

        static string Decrypt(string cipherText, int key)
        {
            return Encrypt(cipherText, 26 - key);
        }
    }
}

Yukarıdaki örnek kodda, önce Encrypt() metodu kullanılarak “HELLO WORLD” metni Sezar şifreleme anahtarı 3 kullanılarak şifrelenir. Sonra, Decrypt() metodu kullanılarak şifreli metin çözülür. Çıktı olarak, orijinal açık metin, şifreli metin ve çözülmüş metin gösterilir.

Sonuç

Bu makalede, C# programlama dilinde Sezar şifrelemesinin nasıl yapıldığını, şifreli metnin nasıl çözüleceğini ve Sezar şifrelemesi için C# dilinde örnekler sunduk. Sezar şifreleme, en basit şifreleme yöntemlerinden biridir ve açık metindeki her harf belirli bir sayıda kaydırılarak şifrelenir. Sezar şifrelemesi, ASCII karakter kodlarına dayanan bir dizi işlem kullanılarak C# programlama diliyle kolayca uygulanabilir.

Evet C# ile Sezar şifreleme bu şekilde yapılmakta. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

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

Bir cevap yazın

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

Başa dön tuşu