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;
}
2 Yorumlar
kod çalışmıyor
YanıtlaSilMerhaba, çalışmadığı satır hakkında bilgi verebilir misin ?
SilBizimle fikirlerinizi paylaşabilirsiniz.