11 Şubat 2010 Perşembe

hill cipher

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

#define SIZE 100

int main(){

int n,i,j,boyut,k;
char ptext[SIZE];
int ktext[SIZE][SIZE];
char ctext[SIZE];
int intext[SIZE];
int x[100][100];
int son[100][100];

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

printf("\nAnahtar kare matrisin boyutunu giriniz:");
scanf("%d",&boyut);
printf("\nAnahtar kare matrisini giriniz:\n");
for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++){
printf("\n%d.satir %d. sutunu giriniz:",i,j);
scanf("%d",&ktext[i][j]);}

for(j=0;j<boyut;j++)
for(i=0;i<boyut;i++)
son[j][i]=0;

for(i=0;i<n;i++)
intext[i]=ptext[i]-'a';


k=0;
for(i=0;i<(n/boyut);i++){
for(j=0;j<boyut;j++){
x[i][j]=intext[j+k];}
k=k+boyut;
}

for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++)
for(k=0;k<boyut;k++)
son[i][j] = son[i][j] + x[i][k]*ktext[k][j];

/*for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++)
printf("\n%d",son[i][j]);*/

k=0;
for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++,k++)
ctext[k]=(son[i][j])%26+'a';

printf("\nhill cipher\n");

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

return 0;
}

Hiç yorum yok:

Yorum Gönder