C Programlama Sezar Şifreleme Algoritması


Adından da anlaşıldığı üzere bu algoritmayı Jul Sezar gönderdiği mesajların düşmanların tarafında ele geçirilirse o mesajı anlamaması için oluşturulmuştur. Bu algoritma en temel şifreleme olarak kabul edilmektedir. Günümüzde şifreleme için pek güvenli sayılmamaktadır. Çünkü çözme olasılığı 1/25 dır. Eğer şifreleme türü bilinmiyorsa bu daha zor olacaktır ama biliniyorsa en fazla 25 denemede şifre kırılacaktır. Günümüzde hiçbir şifreleme çeşidi kırılamaz değildir. Bazı şifreler 10 günde kırılırken bazı şifreler ise 100 yılda kırılabilir. Bir şifreyi kırma süreciniz, bilgisayarınızın gücüne göre değişecektir.

Sezar algoritması, ana mesajın her bir harfini belirtilen anahtar sayı kadar ileri kaydırarak şifreli mesajı oluşturmak üzeredir. Şifreyi çözmek için ise anahtar sayısı ile şifreli mesajdaki her karakterin anahtar sayısı kadar geriye giderek ana mesajı dönüştürmesi üzerinedir.



Örnek olarak ana mesajımız “yazılım tüneli” olsun. Anahtar sayımız da 3 olsun. Daha sonra ana mesajdaki her harfi 3 harf ileri kaydırıp şifreli mesajı “bdclolp wxqhol” olarak buluruz. Aynı şekilde bu şifreyi çözmek için ise o harften itibaren 3 harf geri giderek “yazılım tüneli” ana mesajımızı elde ederiz.

Yazılan kodların ana yapısı her bir harfin ASCII sayı tablosunda karşılığına gelecek şekilde düşünülmüştür. Ayrıca alfabe 26 karakterle sınırlı olup Türkçe karakterler geçerli değildir.




Aşağıda C kodu bulunmaktadır.


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
 system("color 5a");
 char metin[100];
 char krk;
 int kac;
 printf("Buyuk harfle yaziniz...\n");
 printf("Bir cumle giriniz...\n");
 gets(metin);
 printf("Kac karakter otesi sifrelemek istersiniz...");
 scanf("%d",&kac);
 for(int i=0;i<strlen(metin);i++)
 {
  if(metin[i]==' ')
  {
   printf(" ");
   continue;
  }   
  else
  {
   krk = (char) (((int) metin[i]-65+kac)%26+65);
   printf("%c",krk);
  }
 }
 printf("\n");
 system("\npause");
 return 0;
 
}

Yorum Gönder

2 Yorumlar

  1. kod çalışmıyor

    YanıtlaSil
    Yanıtlar
    1. Merhaba, çalışmadığı satır hakkında bilgi verebilir misin ?

      Sil

Bizimle fikirlerinizi paylaşabilirsiniz.