11 Şubat 2010 Perşembe

affine cipher

#include<stdio.h>
#include <string.h>

#define SIZE 10

int main(){

int uzunluk,i,a,b;
char ptext[SIZE];
char ctext[SIZE];
int intext[SIZE];

printf("Sifrenelenecek metni giriniz:");//ptext i al,eleman sayısını bul
gets(ptext);//diziyi alıyoruz
uzunluk=strlen(ptext);

//a ve b key değerlerini al
printf("\na degerini giriniz:");
scanf("%d",&a);
printf("\nb degerini giriniz:");
scanf("%d",&b);

int sayac=0,ks;//aralarında asla ise kontrol
if(a<26)
ks=a;
if(26<a) //küçük sayiyi bulduralım ki döngü daha az çalışsın.
ks=26;

for(i=2;i<=ks;++i)
if(a%i==0 && 26%i==0) //aralarında asal mı??
sayac=1;

if (sayac==0) {

for(i=0;i<uzunluk;i++){
intext[i]=ptext[i]-'a';
ctext[i]=((a*intext[i]+b)%26)+'a';}


printf("\naffine cipher\n");

for(i=0;i<uzunluk;i++)
printf("%c",ctext[i]);
printf("\n");

}
else
printf("\ngirdiginiz a ve 26 degeri aralarinda asal olmadigi icin bu yontemi kullanamazsiniz!!!!\n");

return 0;
}

Hiç yorum yok:

Yorum Gönder